Submission #1204594

#TimeUsernameProblemLanguageResultExecution timeMemory
1204594aritro_Mosaic (IOI24_mosaic)C++20
0 / 100
1065 ms2162688 KiB
#include<bits/stdc++.h> using namespace std; vector<long long> mosaic(vector<int> x,vector<int> y,vector<int> t, vector<int> b,vector<int> l, vector<int> r){ //subtask 5 int n=x.size(); int q=t.size(); vector<long long> ans(q,0); bool xyz=1; for(int i=0;i<n;i++){ if(x[i]!=0) xyz=0; } if(!xyz){ vector<vector<int>> grid(n,vector<int>(n)); for(int i=0;i<n;i++){ grid[i][0]=y[i]; for(int j=1;j<n;j++){ if(i==0) grid[i][j]=x[j]; else{ if(grid[i-1][j]==0&&grid[i][j-1]==0){ grid[i][j]=1; }else grid[i][j]=0; } } } for(int query=0;query<q;query++){ int cnt=0; for(int i=t[query];i<=b[query];i++){ for(int j=l[query];j<=r[query];j++){ if(grid[i][j]==1) cnt++; } } ans[query]=cnt; } return ans; } for(int query=0;query<q;query++){ if(r[query]==0||b[query]==0){ ans[query]=0; continue; } bool f1=0,f2=0; if(t[query]==0){ t[query]++; f1=1; } if(l[query]==0){ l[query]++; f2=1; } long long cnt=(r[query]-l[query]+1)*(b[query]-t[query]+1); ans[query]=cnt/2; if(cnt%2==1){ if((t[query]%2)==(l[query]%2)) ans[query]++; } if(f1) t[query]--; if(f2) l[query]--; } return ans; }
#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...