제출 #535583

#제출 시각아이디문제언어결과실행 시간메모리
535583stefantagaVision Program (IOI19_vision)C++14
100 / 100
15 ms1688 KiB
#include "vision.h" #include<bits/stdc++.h> using namespace std; int row[205], col[205]; int vl[9]; void addone(int x) { int carry = x; for(int i=0; i<9; i++) { int x = vl[i]; vl[i] = add_xor({x, carry}); carry = add_and({x, carry}); } } void construct_network(int H, int W, int K) { vector<int> v; for(int i=0; i<H; i++) { v.clear(); for(int j=0; j<W; j++) { v.push_back(i*W+j); } if(i>0) v.push_back(row[i-1]); row[i] = add_xor(v); } for(int i=0; i<W; i++) { v.clear(); for(int j=0; j<H; j++) { v.push_back(j*W+i); } if(i>0) v.push_back(col[i-1]); col[i] = add_xor(v); } if(H*W==2) { for(int i=0; i<9; i++) { vl[i] = add_not(0); } } else { for(int i=0; i<9; i++) { vl[i] = add_and({0, 1, 2}); } } for(int i=0; i<H; i++) { addone(row[i]); } for(int i=0; i<W; i++) { addone(col[i]); } for(int i=0; i<9; i++) { if((K>>i)%2==0) { vl[i] = add_not(vl[i]); } } v.clear(); for(int i=0; i<9; i++) v.push_back(vl[i]); add_and(v); }
#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...