제출 #316708

#제출 시각아이디문제언어결과실행 시간메모리
316708amunduzbaevVision Program (IOI19_vision)C++14
100 / 100
14 ms1920 KiB
//#include "grader.cpp" #include "vision.h" #include <bits/stdc++.h> #define pb(a) push_back(a) using namespace std; const int N = 405; int h, w; vector <vector<int>> d1(N),d2(N); int pf1[N], pf2[N], di1[N], di2[N]; void construct_network(int H, int W, int k) { h=H, w=W; for(int i=0;i<h;i++){ for(int j=0;j<w;j++){ d1[i+j].pb(i*w+j); d2[i-j+w-1].pb(i*w+j); } } vector<int>ans1, ans2; for(int i = 0 ; i < h+w -1; i++){ di1[i] = add_or(d1[i]); di2[i] = add_or(d2[i]); if(i){ pf1[i] = add_or({pf1[i-1], di1[i]}); pf2[i] = add_or({pf2[i-1], di2[i]}); } else{ pf1[i] = add_or({di1[i]}); pf2[i] = add_or({di2[i]}); } if(i>=k){ ans1.pb( add_and({ di1[i], pf1[i - k]})); ans1.pb( add_and({ di2[i], pf2[i - k]})); } if(i>=k+1){ ans2.pb( add_and({ di1[i], pf1[i - k - 1]})); ans2.pb( add_and({ di2[i], pf2[i - k - 1]})); } } if(ans2.size()!=0) add_xor({add_or(ans1), add_or(ans2)}); else add_or(ans1); 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...