Submission #1221255

#TimeUsernameProblemLanguageResultExecution timeMemory
1221255boclobanchatVision Program (IOI19_vision)C++20
26 / 100
67 ms1460 KiB
#include"vision.h" #include<bits/stdc++.h> using namespace std; void construct_network(int H,int W,int K) { vector<int> vv1,vv2,w; for(int i=0;i<H+W-1;i++) { vector<int> vi; for(int j=0;j<H*W;j++) if(j/W+j%W==i) vi.push_back(j); vv1.push_back(add_or(vi)); } for(int i=0;i<H+W-1;i++) { vector<int> vi; for(int j=0;j<H*W;j++) if(j/W+W-1-j%W==i) vi.push_back(j); vv2.push_back(add_or(vi)); } for(int i=K;i<vv1.size();i++) { w.push_back(add_and({vv1[i],vv1[i-K]})); w.push_back(add_and({vv2[i],vv2[i-K]})); } int res=add_or(w),k=K; K--; vector<int> ww1,ww2; for(int i=0;i<vv1.size();i++) ww1.push_back(add_and({vv1[i]})); for(int i=0;i<vv2.size();i++) ww2.push_back(add_and({vv2[i]})); for(int i=0;K-(1<<i)>=0;i++) { vector<int> tam; for(int j=0;j+(1<<i)<ww1.size();j++) tam.push_back(add_or({ww1[j],ww1[j+(1<<i)]})); ww1=tam,tam.clear(); for(int j=0;j+(1<<i)<ww2.size();j++) tam.push_back(add_or({ww2[j],ww2[j+(1<<i)]})); ww2=tam,K-=(1<<i); } vector<int> tam; for(int j=0;j+K<ww1.size();j++) tam.push_back(add_or({ww1[j],ww1[j+K]})); ww1=tam,tam.clear(); for(int j=0;j+K<ww2.size();j++) tam.push_back(add_or({ww2[j],ww2[j+K]})); ww2=tam,w.clear(); for(int j=k;j<vv1.size();j++) w.push_back(add_and({vv1[j],ww1[j-k]})); int res2=add_or(w); w.clear(); for(int j=k;j<vv2.size();j++) w.push_back(add_and({vv2[j],ww2[j-k]})); int res3=add_or(w); add_and({res,res2,res3}); }
#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...