Submission #298170

#TimeUsernameProblemLanguageResultExecution timeMemory
298170amoo_safarVision Program (IOI19_vision)C++17
100 / 100
24 ms2248 KiB
#include "vision.h" #include <bits/stdc++.h> #define F first #define S second #define pb push_back #define all(x) x.begin(), x.end() using namespace std; const int Log = 9; int v1; int num[Log]; void Add(int car){ int tmp; for(int i = 0; i < Log; i++){ tmp = num[i]; num[i] = add_xor({tmp, car}); car = add_and({tmp, car}); } } void construct_network(int H, int W, int K) { vector<int> Ns(H * W); iota(all(Ns), 0); v1 = add_or(Ns); for(int i = 0; i < Log; i++){ num[i] = add_not(v1); } vector<int> V; int nw = add_not(v1); for(int i = 0; i < H; i++){ V.clear(); for(int j = 0; j < W; j++) V.pb((i * W) + j); V.pb(nw); nw = add_xor(V); Add(nw); } nw = add_not(v1); for(int i = 0; i < W; i++){ V.clear(); for(int j = 0; j < H; j++) V.pb((j * W) + i); V.pb(nw); nw = add_xor(V); Add(nw); } vector<int> fin; for(int i = 0; i < Log; i++){ if(K >> i & 1) fin.pb(add_not(add_not(num[i]))); else fin.pb(add_not(num[i])); } add_and(fin); return ; }
#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...