Submission #1297687

#TimeUsernameProblemLanguageResultExecution timeMemory
1297687DeltaStructVision Program (IOI19_vision)C++20
100 / 100
8 ms3160 KiB
#include <bits/stdc++.h> using namespace std; #include "vision.h" void construct_network(int h,int w,int n){ if (h*w==2){ add_or({0}); return; } int zero = add_and({0,1,2}); int one = add_not(zero); for (int i(0);i < 18;++i) add_or({zero}); int b = one+1,c = one+18; for (int i(0);i < h;++i){ vector<int> I = {c}; for (int k(0);k < w;++k) I.emplace_back(i*w+k); c = add_xor(I); int t = c; for (int k(0);k < 9;++k,b+=2) add_xor({b,c}),c = add_and({b,c}); b = c-17,c = t; } for (int i(0);i < w;++i){ vector<int> I = {c}; for (int k(0);k < h;++k) I.emplace_back(k*w+i); c = add_xor(I); int t = c; for (int k(0);k < 9;++k,b+=2) add_xor({b,c}),c = add_and({b,c}); b = c-17,c = t; } vector<int> R; for (int i(0);i < 9;++i,b+=2) R.emplace_back((n>>i)&1?add_and({b,one}):add_xor({b,one})); add_and(R); }
#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...