Submission #1071540

#TimeUsernameProblemLanguageResultExecution timeMemory
1071540pccVision Program (IOI19_vision)C++17
0 / 100
5 ms1584 KiB
#include "vision.h" #include <bits/stdc++.h> using namespace std; #define pii pair<int,int> #define fs first #define sc second const int mxn = 404; const int sh = mxn>>1; int H,W,K; int encode(int r,int c){ return r*W+c; } pii decode(int k){ return pii(k/W,k%W); } vector<int> v[mxn]; int arr[mxn]; void construct_network(int HH, int WW, int KK) { H = HH,W = WW,K = KK; int zero = add_xor({0,0}); int ans = zero; for(int i = 0;i<H;i++){ for(int j = 0;j<W;j++){ v[i+j].push_back(encode(i,j)); } } for(int i = 0;i<mxn;i++){ if(!v[i].empty()){ arr[i] = add_or(v[i]); } } for(int i = 0;i<H+W;i++){ if(v[i+K].empty()||v[i].empty())continue; ans = add_or({ans,add_and({arr[i],arr[i+K]})}); } for(auto &i:v)i.clear(); for(int i = 0;i<H;i++){ for(int j = 0;j<W;j++){ v[sh+i-j].push_back(encode(i,j)); } } for(int i = 0;i<mxn;i++){ if(!v[i].empty())arr[i] = add_or(v[i]); } for(int i = 0;i<mxn;i++){ if(v[i].empty()||v[i+K].empty())continue; ans = add_or({ans,add_and({arr[i],arr[i+K]})}); } 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...