Submission #1204256

#TimeUsernameProblemLanguageResultExecution timeMemory
1204256perekopskadMosaic (IOI24_mosaic)C++20
7 / 100
72 ms14408 KiB
#include "mosaic.h"
#include <vector>

using namespace std;

#define ll long long
#define ff first
#define ss second
#define pii pair <ll, ll>
#define el '\n'
#define fr(i, l, r) for(ll (i) = l; (i) <= r; (i)++)
#define frb(i, r, l) for(ll (i) = r; (i) >= l; (i)--)

ll const N = 2e5 + 100;

ll pref[2][N];

std::vector<long long> mosaic(std::vector<int> X, std::vector<int> Y, std::vector<int> T, std::vector<int> B, std::vector<int> L, std::vector<int> R) {
    int Q = (int)T.size();
    int N = (int)X.size();

    fr(i, 0, N - 1) {
        pref[0][i] = X[i];
        pref[1][i] = Y[i];

        if(i) {
            pref[0][i] += pref[0][i - 1];
            pref[1][i] += pref[1][i - 1];
        }
    }

    vector <ll> ans(Q);
    fr(i, 0, Q - 1) {
        if(T[i] == 0) {
            ans[i] += pref[0][R[i]];
            if(L[i]) ans[i] -= pref[0][L[i] - 1];
            T[i]++;
        }
        if(L[i] == 0) {
            ans[i] += pref[1][B[i]];
            ans[i] -= pref[1][T[i] - 1];
            L[i]++;
        }

        // calc ans
    }


    return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...