252222026-02-18 14:31:20AblablablaSzámsorjáték (40 pont)cpp17Time limit exceeded 14/401.1s1076 KiB
#include <bits/stdc++.h>

using namespace std;

typedef pair<int, int> pii;

int n, m, k;
vector<int> a, b;
vector<int> sufA, sufB;

int main()
{
    cin >> n >> m >> k;

    a.assign(n, 0);
    b.assign(m, 0);

    for(int &x : a) cin >> x;
    for(int &x : b) cin >> x;

    sufA.assign(n+1, 0);
    sufB.assign(m+1, 0);
    for(int i = n - 1; i >= 0; i--){
        sufA[i] = sufA[i+1] + a[i];
    }
    for(int i = m - 1; i >= 0; i--){
        sufB[i] = sufB[i+1] + b[i];
    }


    vector<pii> kerdes(k);
    map<pii, int> valasz;
    for(int i = 0; i < k; i++){
        int a, b;
        cin >> a >> b;
        a--; b--;

        kerdes[i] = {a, b};
        valasz.insert({{a, b}, -1});
    }


    /*vector<int> egy, ket, har;
    har.assign(10004, 0);
    ket.assign(10004, 0);
    egy.assign(10004, 0);
    ket[n] = b.back();
    ket[n - 1] = a.back();*/
    int egy = 0, ket = 1, har = 2;

    vector<vector<int>> dp(3, vector<int>(n+2, 0));
    dp[ket][n] = b.back();
    dp[ket][n - 1] = a.back();


    for(int ossz = n+m - 2; ossz >= 0; ossz--){
        for(int x = max(0, ossz - m); x <= min(ossz, n); x++){
            int y = ossz - x;

            int marad = sufA[x] + sufB[y];


            if(x == n){
                dp[egy][x] = marad - dp[ket][x];
            } else if(y == m){
                dp[egy][x] = marad - dp[ket][x + 1];
            } else{
                dp[egy][x] = marad - min(dp[ket][x], min(dp[har][x + 1], dp[ket][x + 1]));
            }

            if(valasz.count({x, y})){
                valasz[{x,y}] = dp[egy][x];
            }
        }

        swap(ket, har);
        swap(egy, ket);
    }

    for(int i = 0; i < k; i++){
        cout << valasz[kerdes[i]] << "\n";
    }

    return 0;
}
SubtaskSumTestVerdictTimeMemory
base14/40
1Accepted0/01ms316 KiB
2Accepted0/0428ms872 KiB
3Accepted1/12ms316 KiB
4Accepted1/12ms500 KiB
5Accepted1/17ms420 KiB
6Accepted1/17ms420 KiB
7Accepted1/11ms332 KiB
8Accepted1/12ms500 KiB
9Accepted1/14ms316 KiB
10Accepted1/16ms476 KiB
11Accepted1/18ms564 KiB
12Accepted1/113ms616 KiB
13Accepted1/1128ms780 KiB
14Accepted1/198ms568 KiB
15Accepted1/175ms536 KiB
16Accepted1/175ms492 KiB
17Time limit exceeded0/21.1s564 KiB
18Time limit exceeded0/21.1s564 KiB
19Time limit exceeded0/21.088s564 KiB
20Time limit exceeded0/21.08s1076 KiB
21Time limit exceeded0/21.082s1076 KiB
22Time limit exceeded0/21.1s1076 KiB
23Time limit exceeded0/31.082s1076 KiB
24Time limit exceeded0/31.082s1076 KiB
25Time limit exceeded0/41.09s1076 KiB
26Time limit exceeded0/41.088s1076 KiB