Submission #305507

#TimeUsernameProblemLanguageResultExecution timeMemory
305507azberjibiouVision Program (IOI19_vision)C++17
0 / 100
16 ms1604 KiB
#include "vision.h" #include <bits/stdc++.h> using namespace std; void construct_network(int H, int W, int K) { vector <int> v; for(int i=0;i<H;i++) { v.clear(); for(int j=0;j<W;j++) { v.push_back(W*i+j); } add_or(v); } for(int i=0;i<W;i++) { v.clear(); for(int j=0;j<H;j++) { v.push_back(W*j+i); } add_or(v); } v.clear(); for(int i=0;i<H;i++) for(int j=0;j<W;j++) v.push_back(H*i+j); int ult=add_or(v); vector <int> Hh, Ww, tmp; Hh.resize(H), Ww.resize(W); for(int i=1;i<H;i++) { if(i>K) break; tmp.clear(); for(int j=0;j<H-i;j++) { v.clear(); v.push_back(H*W+j); v.push_back(H*W+j+i); tmp.push_back(add_and(v)); } Hh[i]=add_or(tmp); } tmp.clear(); for(int i=1;i<H;i++) { if(i>K) break; tmp.push_back(Hh[i]); } if(H==1) Hh[0]=ult; else Hh[0]=not(add_or(tmp)); for(int i=1;i<W;i++) { if(i>K) break; tmp.clear(); for(int j=0;j<W-i;j++) { v.clear(); v.push_back(H*W+H+j); v.push_back(H*W+H+j+i); tmp.push_back(add_and(v)); } Ww[i]=add_or(tmp); } tmp.clear(); for(int i=1;i<W;i++) { if(i>K) break; tmp.push_back(Ww[i]); } if(W==1) Ww[0]=ult; else Ww[0]=not(add_or(tmp)); tmp.clear(); for(int i=0;i<H;i++) { if(K-i<0 || K-i>W) continue; tmp.push_back(add_and({Hh[i], Ww[K-i]})); } add_or(tmp); }
#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...