Submission #723732

#TimeUsernameProblemLanguageResultExecution timeMemory
723732alvingogoVision Program (IOI19_vision)C++14
100 / 100
13 ms1760 KiB
#include "vision.h" #include <bits/stdc++.h> using namespace std; void construct_network(int n, int m, int k) { vector<vector<int> > t1(n+m-1),t2(n+m-1); for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ t1[i+j].push_back(i*m+j); t2[i-j+m-1].push_back(i*m+j); } } vector<int> o1(n+m-1),o2(n+m-1); for(int i=0;i<n+m-1;i++){ o1[i]=add_or(t1[i]); o2[i]=add_or(t2[i]); } vector<int> z; for(int i=0;i+k<n+m-1;i++){ vector<int> gg={o1[i],o1[i+k]}; z.push_back(add_and(gg)); gg={o2[i],o2[i+k]}; z.push_back(add_and(gg)); } vector<int> ans; ans.push_back(add_or(z)); int l=0; int tt=-1,ff=-1; vector<int> p; for(int i=0;i<n+m-1;i++){ while(i-l>k){ if(tt==-1){ tt=add_or({o1[l]}); } else{ tt=add_or({tt,o1[l]}); } if(ff==-1){ ff=add_or({o2[l]}); } else{ ff=add_or({ff,o2[l]}); } l++; } if(tt!=-1){ p.push_back(add_and({o1[i],tt})); p.push_back(add_and({o2[i],ff})); } } if(p.size()){ int g=add_or(p); ans.push_back(add_not(g)); } add_and(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...