Submission #1242320

#TimeUsernameProblemLanguageResultExecution timeMemory
1242320dostsMosaic (IOI24_mosaic)C++20
12 / 100
71 ms11336 KiB
#include "mosaic.h"
#include <bits/stdc++.h>
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2")
#define int long long
#define pii pair<int,int>
#define vi vector<int>
#define ff first
#define ss second
#define sp << " " <<
#define all(x) x.begin(),x.end()
#define big(x) ((int)(x.size()))
using namespace std;
const int MOD = 1e9+7, LIM = 1e6+1, inf = 2e9;

vi mosaic(vector<int32_t> X, vector<int32_t> Y,
                              vector<int32_t> T, vector<int32_t> B,
                              vector<int32_t> L, vector<int32_t> R) {
    int N = X.size();
    int Q = L.size();
    vi ans(Q);
    if (N <= 200) {
        int table[N][N];
        for (int i = 0;i<N;i++) table[0][i] = X[i];
        for (int i = 0;i<N;i++) table[i][0] = Y[i];
        for (int i=1;i<N;i++) {
            for (int j = 1;j<N;j++) {
                table[i][j] = (!table[i-1][j] && !table[i][j-1]);
            }
        }
        for (int i = 0;i<Q;i++) {
            for (int j = T[i];j<= B[i];j++){
                for (int jj = L[i];jj <= R[i];jj++) {
                    ans[i]+=table[j][jj];
                }
            }
        }
        return ans;
    }
    vector<vi> rows(5);
    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...