제출 #291718

#제출 시각아이디문제언어결과실행 시간메모리
291718medmdgVision Program (IOI19_vision)C++14
12 / 100
1 ms416 KiB
#include<bits/stdc++.h> #include "vision.h" using namespace std; vector<int> DT(int H,int W,int i,int K){ vector<int> ans; for(int j=i+K;j<H*W-K;j++){ if(abs(j%W-i%W)+abs(j/W-i/W)==K){ ans.push_back(j); } } return ans; } void construct_network(int H, int W, int K){ vector<int> b; b.push_back(0); b.push_back(1); if(H*W>2) b.push_back(2); int l=add_and(b); b.pop_back(); b.pop_back(); if(b.size()) b.pop_back(); b.push_back(l); if(H*W==2){ if(K==1) return; else l=add_not(0); return; } if(min(H,W)==1){ for(int i=0;i<H*W-K;i++){ vector<int> ans; ans.push_back(i); ans.push_back(i+K); l=add_and(ans); ans.pop_back(); ans.pop_back(); ans.push_back(l-1); ans.push_back(l); l=add_or(ans); } return; } if(max(H,W)<=100){ for(int i=0;i<H*W-K;i++){ vector<int> ans; int h=(int)(DT(H,W,i,K).size()!=0); if(h){ l=add_or(DT(H,W,i,K)); ans.push_back(l); ans.push_back(i); l=add_and(ans); ans.pop_back(); ans.pop_back(); ans.push_back(l); ans.push_back(l-2); l=add_or(ans); } } return; } else{ vector<int> ans; for(int i=1;i<H*W;i++){ if((i%W)+(i/W)==K){ ans.push_back(i); } } l=add_or(ans); return; } }
#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...