1 solutions

  • 0
    @ 2025-1-22 12:12:51

    C++ :

    #include <iostream>
    using namespace std;
    
    int main() {
        // 定义变量N表示面团的数量
        int N;
        cin >> N;
    
        // 定义数组A存储每个面团的口味编号
        int A[20]; // 题目中N的范围是2 <= N <= 20
        for (int i = 0; i < N; i++) {
            cin >> A[i];
        }
    
        // 定义数组B存储每个面团的幸福感
        int B[20];
        for (int i = 0; i < N; i++) {
            cin >> B[i];
        }
    
        // 定义数组C存储相邻面团组合的额外幸福感
        int C[19]; // 相邻组合的数量是N-1
        for (int i = 0; i < N - 1; i++) {
            cin >> C[i];
        }
    
        // 计算所有面团的幸福感总和
        int sum_B = 0;
        for (int i = 0; i < N; i++) {
            sum_B += B[i];
        }
    
        // 计算相邻面团组合的额外幸福感
        int sum_C = 0;
        for (int i = 0; i < N - 1; i++) {
            // 如果当前面团的口味编号是下一个面团的口味编号减1
            // 说明满足相邻组合条件,累加对应的额外幸福感
            if (A[i + 1] == A[i] + 1) {
                sum_C += C[A[i] - 1]; // C数组的下标从0开始,A[i]是口味编号
            }
        }
    
        // 输出总幸福感
        cout << sum_B + sum_C << endl;
    
        return 0;
    }
    

    Information

    ID
    701
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    10
    Tags
    # Submissions
    1
    Accepted
    1
    Uploaded By