Submission #947002

#TimeUsernameProblemLanguageResultExecution timeMemory
947002sleepntsheepVision Program (IOI19_vision)C++17
100 / 100
15 ms2008 KiB
#include "vision.h" #include<vector> using namespace std; using V=std::vector<int>; int F,T,KK; int adder(int x,int c) { for(int i=0;i<9;++i) { add_xor(V{x+2*i,c}); c=add_and(V{x+2*i,c}); } return c-17; } int alloc() { int c=add_not(F)+1; for(int i=0;i<18;++i) add_not(T); return c; } void construct_network(int H, int W, int K) { add_not(0); F=add_and(V{0,H*W}); T=add_not(F); KK=alloc(); int run=alloc(); for(int i=0;i<H;++i) { V e; for(int j=0;j<W;++j)e.push_back(i*W+j); int rr=add_xor(e); run=add_xor(V{run,rr}); KK=adder(KK,run); } for(int i=0;i<W;++i) { V e; for(int j=0;j<H;++j)e.push_back(j*W+i); int rr=add_xor(e); run=add_xor(V{run,rr}); KK=adder(KK,run); } V ans; for(int i=0;i<9;++i) ans.push_back(add_not(add_xor(V{KK+2*i,(K&(1<<i))?T:F}))); 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...