제출 #1053189

#제출 시각아이디문제언어결과실행 시간메모리
1053189amirhoseinfar1385Vision Program (IOI19_vision)C++17
100 / 100
29 ms7584 KiB
#include "vision.h" #include<bits/stdc++.h> using namespace std; int n,m; const int maxn=400+10; int solve(int k){ vector<int>all0[maxn],all1[maxn],ps0,ps1; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ all0[i+j].push_back(i*m+j); all1[i+(m-j-1)].push_back(i*m+j); } } vector<int>ret; for(int i=k;i<=n+m-2;i++){ // cout<<i<<" "<<(int)all0[i-k].size()<<" "<<all1[i-k].size()<<" "<<(int)all0[i].size()<<" "<<(int)all1[i].size()<<endl; ps0.push_back(add_or(all0[i-k])); ps1.push_back(add_or(all1[i-k])); ret.push_back(add_and({add_or(all0[i]),add_or(ps0)})); ret.push_back(add_and({add_or(all1[i]),add_or(ps1)})); } /* cout<<"vorod"<<endl; for(auto x:ps0){ cout<<"wtf0: "<<x<<endl; } for(auto x:ps1){ cout<<"wtf1: "<<x<<endl; } cout<<"khor"<<endl;*/ return add_or(ret); } void construct_network(int H, int W, int fas) { n=H; m=W; if(fas==(n+m-2)){ solve(fas); }else{ add_and({solve(fas),add_not(solve(fas+1))}); } }
#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...