Submission #1221357

#TimeUsernameProblemLanguageResultExecution timeMemory
1221357im2xtremeMosaic (IOI24_mosaic)C++20
22 / 100
1014 ms2162688 KiB
#include <iostream>
#include <vector>
#include "mosaic.h"

using namespace std;

vector<long long> mosaic(
    vector<int> X, vector<int> Y,
    vector<int> T, vector<int> B,
    vector<int> L, vector<int> R) {

    int N = X.size(), Q = T.size();
    vector<vector<int>> A(N, vector<int>(N));
    vector<vector<long long>> S(N + 1, vector<long long>(N + 1));

    for (int j = 0; j < N; j++) A[0][j] = X[j];
    for (int i = 0; i < N; i++) A[i][0] = Y[i];

    for (int i = 1; i < N; i++)
        for (int j = 1; j < N; j++)
            A[i][j] = (A[i-1][j] == 0 && A[i][j-1] == 0) ? 1 : 0;

    for (int i = 0; i < N; i++)
        for (int j = 0; j < N; j++)
            S[i+1][j+1] = A[i][j] + S[i][j+1] + S[i+1][j] - S[i][j];

    vector<long long> res(Q);
    for (int k = 0; k < Q; k++) {
        int t = T[k], b = B[k], l = L[k], r = R[k];
        res[k] = S[b+1][r+1] - S[t][r+1] - S[b+1][l] + S[t][l];
    }

    return res;
}
#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...