Submission #1291366

#TimeUsernameProblemLanguageResultExecution timeMemory
1291366MMihalevVision Program (IOI19_vision)C++20
58 / 100
5 ms2072 KiB
#include<iostream> #include<algorithm> #include<vector> #include "vision.h" using namespace std; const int MAX_N=2e3+3; int n,m,k; int tonum(int i,int j) { return i*m+j; } int xorcol[MAX_N]; int xorrow[MAX_N]; int allzeroxorrow,allzeroxorcol; void construct_network(int H, int W, int K) { n=H; m=W; k=K; if(n*m*2<=10000) { vector<int>positionscheck; for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { vector<int>cells; for(int i2=i;i2<n;i2++) { if(i2==i && j+k<m)cells.push_back(tonum(i2,j+k)); if(i2>i) { int rem=k-(i2-i); if(rem<0)break; if(j-rem>=0)cells.push_back(tonum(i2,j-rem)); if(j+rem<m)cells.push_back(tonum(i2,j+rem)); } } if(cells.size()==0)continue; int pos=add_or(cells); vector<int>tmp;tmp.push_back(pos);tmp.push_back(tonum(i,j)); positionscheck.push_back(add_and(tmp)); } } add_or(positionscheck); return; } vector<int>xorrowcells; for(int i=0;i<n;i++) { vector<int>cells; for(int j=0;j<m;j++) { cells.push_back(tonum(i,j)); } xorrow[i]=add_xor(cells); xorrowcells.push_back(xorrow[i]); } vector<int>xorcolcells; for(int j=0;j<m;j++) { vector<int>cells; for(int i=0;i<n;i++) { cells.push_back(tonum(i,j)); } xorcol[j]=add_xor(cells); xorcolcells.push_back(xorcol[j]); } allzeroxorrow=add_or(xorrowcells); allzeroxorrow=add_not(allzeroxorrow); allzeroxorcol=add_or(xorcolcells); allzeroxorcol=add_not(allzeroxorcol); vector<int>androwcons; for(int i=1;i<n;i++) { androwcons.push_back(add_and({xorrowcells[i-1],xorrowcells[i]})); } vector<int>andcolcons; for(int j=1;j<m;j++) { andcolcons.push_back(add_and({xorcolcells[j-1],xorcolcells[j]})); } int consrow1,conscol1; consrow1=add_or(androwcons); consrow1=add_and({consrow1,allzeroxorcol}); conscol1=add_or(andcolcons); conscol1=add_and({conscol1,allzeroxorrow}); add_or({conscol1,consrow1}); }
#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...