Submission #1217898

#TimeUsernameProblemLanguageResultExecution timeMemory
1217898dostsMosaic (IOI24_mosaic)C++20
Compilation error
0 ms0 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; int rectsum(int x1,int y1,int x2,int y2) { return grid[x2][y2]-grid[x1-1][y2]-grid[x2][y1-1]+grid[x1-1][y1-1]; }; 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(),Q = T.size(); int rows[4][N+1],cols[4][N+1]; for (int i = 1;i<=N;i++) rows[1][i] = X[i-1]; for (int i = 1;i<=N;i++) cols[i][1] = Y[i-1]; rows[2][1] = Y[1],rows[3][1] = Y[2]; set<int> diag; for (int i = 2;i<=3;i++) { for (int j = 2;j<=N;j++) { rows[i][j] = (!rows[i-1][j] && !rows[i][j-1]); if (rows[i][j]) diag.insert(i-j); } } cols[2][1] = X[1],cols[3][1] = X[2]; for (int i = 2;i<=3;i++) { for (int j = 2;j<=N;j++) { cols[i][j] = (!cols[i-1][j] && !cols[i][j-1]); if (cols[i][j]) diag.insert(i-j); } } int prv = cols[3][4]; for (int i = 4;i<=4;i++) { for (int j = 4;j<=N;j++) { prv = (!rows[3][j] && !prv); if (prv) diag.insert(i-j); } } vi ans(Q,0); for (int i = 0;i<Q;i++) { L[i]++,R[i]++,T[i]++,B[i]++; if (L[i] <= 3) { ans[i] = cols[L[i]][T[i]]; continue; } if (T[i] <= 3) { ans[i] = rows[T[i]][L[i]]; continue; } ans[i] = diag.count(T[i]-L[i]); } return ans; }

Compilation message (stderr)

mosaic.cpp: In function 'long long int rectsum(long long int, long long int, long long int, long long int)':
mosaic.cpp:17:10: error: 'grid' was not declared in this scope
   17 |   return grid[x2][y2]-grid[x1-1][y2]-grid[x2][y1-1]+grid[x1-1][y1-1];
      |          ^~~~