Submission #1221259

#TimeUsernameProblemLanguageResultExecution timeMemory
1221259boclobanchatVision Program (IOI19_vision)C++20
36 / 100
67 ms1352 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--; 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]})); int sum=0; for(int i=0;K-(1<<i)>=0;i++) { sum+=(1<<i); vector<int> tam; for(int j=0;j<sum;j++) tam.push_back(add_or({ww1[j]})); for(int j=sum;j<ww1.size();j++) tam.push_back(add_or({ww1[j],ww1[j-(1<<i)]})); ww1=tam,tam.clear(); for(int j=0;j<sum;j++) tam.push_back(add_or({ww2[j]})); for(int j=sum;j<ww2.size();j++) tam.push_back(add_or({ww2[j],ww2[j-(1<<i)]})); ww2=tam,K-=(1<<i); } sum+=K; vector<int> tam; for(int j=0;j<sum;j++) tam.push_back(add_or({ww1[j]})); for(int j=sum;j<ww1.size();j++) tam.push_back(add_or({ww1[j],ww1[j-K]})); ww1=tam,tam.clear(); for(int j=0;j<sum;j++) tam.push_back(add_or({ww2[j]})); for(int j=sum;j<ww2.size();j++) tam.push_back(add_or({ww2[j],ww2[j-K]})); ww2=tam,w.clear(); for(int j=1;j<vv1.size();j++) w.push_back(add_and({vv1[j],ww1[j-1]})); int res2=add_or(w),rp=add_xor(vv1); res2=add_or({res2,rp}); w.clear(); for(int j=1;j<vv2.size();j++) w.push_back(add_and({vv2[j],ww2[j-1]})); int res3=add_or(w); rp=add_xor(vv2),res3=add_or({res3,rp}); 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...