#include<iostream>
#include<algorithm>
#include<vector>
#include "mosaic.h"
using namespace std;
const int MAX_N=5e3+5;
int a[MAX_N][MAX_N];
int p[MAX_N][MAX_N];
int n,q;
vector<long long>ans;
int query(int x1,int x2,int y1,int y2)
{
return p[x2][y2]-p[x1-1][y2]-p[x2][y1-1]+p[x1-1][y1-1];
}
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)
{
n=X.size();
q=T.size();
ans.resize(q);
for(int j=1;j<=n;j++)
{
a[1][j]=X[j-1];
}
for(int i=1;i<=n;i++)
{
a[i][1]=Y[i-1];
}
for(int i=2;i<=n;i++)
{
for(int j=2;j<=n;j++)
{
if(a[i-1][j]+a[i][j-1]==0)a[i][j]=1;
else a[i][j]=0;
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
p[i][j]=p[i-1][j]+a[i][j]+p[i][j-1]-p[i-1][j-1];
}
}
for(int i=1;i<=q;i++)
{
ans[i-1]=query(T[i-1]+1,B[i-1]+1,L[i-1]+1,R[i-1]+1);
}
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... |