제출 #316810

#제출 시각아이디문제언어결과실행 시간메모리
316810tengiz05Vision Program (IOI19_vision)C++17
0 / 100
12 ms1792 KiB
#include "vision.h" #include <bits/stdc++.h> using namespace std; vector<int> dl[405], dr[405]; int dgl[405], dgr[405], prl[405], prr[405]; int h, w; int pos(int i, int j){ return i*w+j; } void construct_network(int n, int m, int k) { h=n, w=m; vector<int> vec1, vec2; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ dl[i+j].push_back(pos(i, j)); dr[i-j+m-1].push_back(pos(i, j)); } } for(int i=0;i<=n+m-2;i++){ dgl[i] = add_or(dl[i]); dgr[i] = add_or(dr[i]); if(i == 0){ prl[i] = add_or({dgl[i]}); prr[i] = add_or({dgr[i]}); }else { prl[i] = add_or({prl[i-1], dgl[i]}); prr[i] = add_or({prr[i-1], dgr[i]}); } if(i >= k){ vec1.push_back(add_and({dgl[i], prl[i-k]})); vec1.push_back(add_and({dgr[i], prr[i-k]})); }if(i >= k+1){ vec2.push_back(add_and({dgr[i], prl[i-k-1]})); vec2.push_back(add_and({dgr[i], prr[i-k-1]})); } }if(k == n+m-2){ add_or(vec1); }else { add_xor({add_or(vec1), add_or(vec2)}); } }
#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...