Submission #144268

#TimeUsernameProblemLanguageResultExecution timeMemory
144268mohammedehab2002Vision Program (IOI19_vision)C++14
100 / 100
27 ms1808 KiB
#include "vision.h" #include <bits/stdc++.h> using namespace std; int n,m,ze; int cn(int x,int y) { return x*m+y; } vector<int> half(vector<int> cur) { vector<int> ret; int tmp=ze; for (int i:cur) { ret.push_back(add_and({tmp,i})); tmp=add_xor({tmp,i}); } return ret; } void construct_network(int h,int w,int k) { n=h; m=w; vector<int> r,c,cur,bits; for (int i=0;i<n;i++) { for (int j=0;j<m;j++) r.push_back(cn(i,j)); cur.push_back(add_xor(r)); r={cur.back()}; } for (int j=0;j<m;j++) { for (int i=0;i<n;i++) c.push_back(cn(i,j)); cur.push_back(add_xor(c)); c={cur.back()}; } ze=cur.back(); for (int i=0;i<9;i++) { bits.push_back(add_xor(cur)); if (k&(1<<i)) bits[i]=add_not(bits[i]); cur=half(cur); } add_not(add_or(bits)); }
#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...