Submission #1282968

#TimeUsernameProblemLanguageResultExecution timeMemory
1282968Rares모자이크 (IOI24_mosaic)C++20
22 / 100
250 ms307300 KiB
#include <bits/stdc++.h> using namespace std; /**ifstream fin ("date.in"); ofstream fout ("date.out"); #define cin fin #define cout fout**/ typedef long long ll; const int MAXN=5010; const int MAXQ=200010; vector <ll> rez; int a[MAXN][MAXN],n,q,l[MAXN],c[MAXN]; ll s[MAXN][MAXN]; struct query{ int x1,y1,x2,y2; }v[MAXQ]; ll f (int x1, int x2, int y1, int y2){ return s[x2][y2]-s[x1-1][y2]-s[x2][y1-1]+s[x1-1][y1-1]; } void solve (){ for (int i=1;i<=n;++i){ a[1][i]=l[i]; } for (int i=1;i<=n;++i){ a[i][1]=c[i]; } for (int i=2;i<=n;++i){ for (int j=2;j<=n;++j){ if (a[i][j-1]==a[i-1][j] and 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){ s[i][j]=a[i][j]+s[i][j-1]+s[i-1][j]-s[i-1][j-1]; } } for (int i=1;i<=q;++i){ rez.push_back (f (v[i].x1,v[i].x2,v[i].y1,v[i].y2)); } } vector<ll> mosaic(vector<int> x, vector<int> y,vector<int> x1, vector<int> x2,vector<int> y1, vector<int> y2){ n=x.size (); q=x1.size (); for (int i=0;i<n;++i){ l[i+1]=x[i]; c[i+1]=y[i]; } for (int i=0;i<q;++i){ x1[i]++; x2[i]++; y1[i]++; y2[i]++; v[i+1]={x1[i],y1[i],x2[i],y2[i]}; } solve (); return rez; }
#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...