Submission #546464

#TimeUsernameProblemLanguageResultExecution timeMemory
546464krit3379Vision Program (IOI19_vision)C++17
100 / 100
31 ms3580 KiB
#include<bits/stdc++.h> using namespace std; #include"vision.h" #define N 205 int a[N][N]; vector<int> l[2*N],r[2*N],tl,tr,qsl,qsr; int sol(int k,int h,int w){ int i; vector<int> t; for(i=0;i+k<h+w-1;i++){ t.push_back(add_and({qsl[i],tl[i+k]})); t.push_back(add_and({qsr[i],tr[i+k]})); } return add_or(t); } void construct_network(int h, int w, int k){ int i,j,sz=0; for(i=0;i<h;i++){ for(j=0;j<w;j++){ a[i][j]=sz++; } } for(i=0;i<h;i++){ for(j=0;j<w;j++){ l[i+j].push_back(a[i][j]); r[h-i-1+j].push_back(a[i][j]); } } for(i=0;i<h+w-1;i++){ tl.push_back(add_or(l[i])); qsl.push_back(add_or(tl)); tr.push_back(add_or(r[i])); qsr.push_back(add_or(tr)); } if(k==h+w-2)sol(k,h,w); else add_and({sol(k,h,w),add_not(sol(k+1,h,w))}); }
#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...