# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1237523 | bangan | Mosaic (IOI24_mosaic) | C++20 | 1108 ms | 291780 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();
if (accumulate(X.begin()+1, X.end(), 0)==0 && accumulate(Y.begin()+1, Y.end(), 0)==0) {
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;
}
vector<map<int, int>> a(N);
for (int r=0; r<N; r++) a[r][0] = Y[r];
for (int c=0; c<N; c++) a[0][c] = X[c];
for (int i=1; i<N; i++) {
int tot=0;
for (int r=i; r<N; r++) tot += (a[r][i] = (a[r-1][i] | a[r][i-1]) ^ 1);
for (int c=i; c<N; c++) tot += (a[i][c] = (a[i][c-1] | a[i-1][c]) ^ 1);
if (tot==0) break;
}
vector<ll> ans(Q);
for (int i=0; i<Q; i++) {
int r = T[i];
int c = L[i];
if (a[r].contains(c)) ans[i] = a[r][c];
else ans[i] = (r%2==c%2);
}
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |