Submission #1237509

#TimeUsernameProblemLanguageResultExecution timeMemory
1237509banganMosaic (IOI24_mosaic)C++20
8 / 100
73 ms11336 KiB
#include "mosaic.h" #include <bits/stdc++.h> #include <vector> using namespace std; #define ll long long 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 N = X.size(); int Q = (int)T.size(); // vector a(1, vector<ll>(N)); // for (int i=0; i<N; i++) a[0][i] = X[i]; // for (int i=0; i<1; i++) a[i][0] = Y[i]; // for (int i=1; i<1; i++) for (int j=1; j<N; j++) a[i][j] = (a[i][j-1] | a[i-1][j]) ^ 1; // for (int i=0; i<1; i++) for (int j=0; j<N; j++) { // if (0 <= i-1) a[i][j] += a[i-1][j]; // if (0 <= j-1) a[i][j] += a[i][j-1]; // if (0 <= i-1 && 0 <= j-1) a[i][j] -= a[i-1][j-1]; // } std::vector<long long> C(Q, 0); for (int i=0; i<Q; i++) { int r1=T[i], r2=B[i]; int c1=L[i], c2=R[i]; if (!r1&&!r2) { C[i]=0; continue; } if (!c1&&!c2) { C[i]=0; continue; } if (!r1) r1++; if (!c1) c1++; int r = r2-r1+1; r/=2; int c = c2-c1+1; c/=2; r += (r1%2==1 && r2%2==1); c += (c1%2==1 && c2%2==1); C[i] = 1ll*r*c; r = (r2-r1+1) - r; c = (c2-c1+1) - c; C[i] += 1ll*r*c; } return C; }
#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...