Submission #1142958

#TimeUsernameProblemLanguageResultExecution timeMemory
1142958ag_1204Mosaic (IOI24_mosaic)C++20
22 / 100
1018 ms2162688 KiB
#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 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...