#include <bits/stdc++.h>
using namespace std;
using ll = long long;
vector<ll> mosaic(vector<int> X, vector<int> Y,vector<int> T, vector<int> B,vector<int> L, vector<int> R){
ll n = X.size();
ll row[3][20005];
ll column[3][20005];
for (int i=0; i<n; i++){row[0][i]=X[i];}
for (int i=0; i<n; i++){column[0][i]=Y[i];}
if (n>1){
row[1][0]=column[0][1];
column[1][0]=row[0][1];
for (int i=1; i<n; i++){row[1][i]=1-(row[1][i-1] | row[0][i]);}
for (int i=1; i<n; i++){column[1][i]=1-(column[1][i-1] | column[0][i]);}
}
if (n>2){
row[2][0]=column[0][2];
column[2][0]=row[0][2];
for (int i=1; i<n; i++){row[2][i]=1-(row[2][i-1] | row[1][i]);}
for (int i=1; i<n; i++){column[2][i]=1-(column[2][i-1] | column[1][i]);}
}
vector <ll> dp_row(n,0);
vector <ll> dp_col(n,0);
if (n>2){
for (int i=1; i<n; i++){dp_row[i]=dp_row[i-1]+row[2][i];}
for (int i=1; i<n; i++){dp_col[i]=dp_col[i-1]+column[2][i];}
}
vector <ll> dp_row_0(n+1,0);
vector <ll> dp_row_1(n+1,0);
if (n>2){
for (int i=1; i<n; i++){dp_row_0[i]=dp_row_0[i-1]+row[0][i];}
for (int i=1; i<n; i++){dp_row_1[i]=dp_row_1[i-1]+row[1][i];}
}
ll q = T.size();
vector <ll> ans;
ll t,b,l,r;
//for (auto x : dp_row_1){cout<<x<<' ';}cout<<"\n";
//for (auto x: row[1]){cout<<x<<' ';}cout<<"\n";
for (int i=0; i<q; i++){
t=T[i];
b=B[i];
l=L[i];
r=R[i];
ll sm=0;
if (l==0)sm+=column[t][0];
if (l<=1 && n>1)sm+=column[t][1];
if (l<=2 && n>2)sm+=column[t][2];
l=max(2LL,l);
if (t<=2){
l++;
if (t==0){sm=sm+dp_row_0[r]-dp_row_0[l-1];}
if (t==1){sm=sm+dp_row_1[r]-dp_row_1[l-1];}
if (t==2){sm=sm+dp_row[r]-dp_row[l-1];}
}
else if (n>2 && r>l){
if (t>=r){
sm+=dp_col[t+2-l]-dp_col[t+2-r];
}
else if (t<=l){
sm+=dp_row[t+2-r]-dp_row[t+2-l];
}
else {
sm+=dp_col[t+2-l]-dp_col[1];
sm+=dp_row[t+2-r]-dp_col[1];
sm+=row[2][2];
}
}
ans.push_back(sm);
}
return ans;
}
| # | 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... |