Submission #1233820

#TimeUsernameProblemLanguageResultExecution timeMemory
1233820jundiVision Program (IOI19_vision)C++20
33 / 100
4 ms4424 KiB
#include <vector> #include "vision.h" using namespace std; void construct_network(int h,int w,int k){ int n=h*w; if(k==1){ int t=h*(w-1)+w*(h-1); if(t>10000){ int n0=add_not(0); add_and({0,n0}); return; } vector<int> e; for(int i=0;i<h;i++){ for(int j=0;j<w-1;j++){ int idx=i*w+j; e.push_back(add_and({idx,idx+1})); } } for(int i=0;i<h-1;i++){ for(int j=0;j<w;j++){ int idx=i*w+j; e.push_back(add_and({idx,idx+w})); } } if(e.empty()){ int n0=add_not(0); add_and({0,n0}); }else{ add_or(e); } }else{ vector<int> ns(n); for(int i=0;i<n;i++) ns[i]=add_not(i); vector<int> os; for(int i=0;i<n;i++){ for(int j=i+1;j<n;j++){ int r1=i/w,c1=i%w; int r2=j/w,c2=j%w; int d=abs(r1-r2)+abs(c1-c2); if(d==k){ vector<int> in={i,j}; for(int x=0;x<n;x++){ if(x==i||x==j) continue; in.push_back(ns[x]); } os.push_back(add_and(in)); } } } if(os.empty()){ int n0=add_not(0); add_and({0,n0}); }else{ add_or(os); } } }
#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...