#include "mosaic.h"
#include <bits/stdc++.h>
#define int long long
using namespace std;
vector<int> mosaic(vector<signed> X, vector<signed> Y,vector<signed> T, vector<signed> B,vector<signed> L, vector<signed> R) {
int n=size(X);
int grid[n+1][n+1],cnt[n+1][n+1];
memset(cnt,0,sizeof(cnt));
for (int i=1;i<=n;i++) {
int x=X[i-1]; grid[1][i]=x;
cnt[1][i]=cnt[1][i-1]+x;
}
for (int i=1;i<=n;i++) {
int y=Y[i-1]; grid[i][1]=y;
cnt[i][1]=cnt[i-1][1]+y;
}
for (int i=2;i<=n;i++) {
for (int j=2;j<=n;j++) {
if (grid[i][j-1]+grid[i-1][j]>0) grid[i][j]=0;
else grid[i][j]=1;
cnt[i][j]=cnt[i-1][j]+cnt[i][j-1]-cnt[i-1][j-1]+grid[i][j];
}
}
/*
for (int i=1;i<=n;i++) {
for (int j=1;j<=n;j++) cout<<grid[i][j]<<" ";
cout<<endl;
}
cout<<endl;
for (int i=1;i<=n;i++) {
for (int j=1;j<=n;j++) cout<<cnt[i][j]<<" ";
cout<<endl;
}
*/
int q=size(T);
vector<int> C;
for (int i=0;i<q;i++){
int a=T[i],b=B[i],c=L[i],d=R[i]; b++; d++;
C.push_back(cnt[b][d]+cnt[a][c]-cnt[a][d]-cnt[b][c]);
}
return C;
}
# | 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... |