제출 #256960

#제출 시각아이디문제언어결과실행 시간메모리
256960b00n0rpVision Program (IOI19_vision)C++17
46 / 100
10 ms1272 KiB
#include "vision.h" #include<bits/stdc++.h> using namespace std; #define REP(i,n) for(int i = 0; i < n; i ++) #define FOR(i,a,b) for(int i = a; i < b; i++) #define vi vector<int> #define pb push_back vi xorrow,xorcol; int diffrow[205],diffcol[205]; void construct_network(int H, int W, int K){ REP(i,H){ vi v; REP(j,W) v.pb(i*W+j); xorrow.pb(add_xor(v)); } REP(j,W){ vi v; REP(i,H) v.pb(i*W+j); xorcol.pb(add_xor(v)); } int cur = add_or(xorrow); diffrow[0] = add_not(cur); cur = add_or(xorcol); diffcol[0] = add_not(cur); FOR(k,1,K+1){ vi vrow,vcol; REP(i,H-k) vrow.pb(add_and({xorrow[i],xorrow[i+k]})); REP(i,W-k) vcol.pb(add_and({xorcol[i],xorcol[i+k]})); if(vrow.size()) diffrow[k] = add_or(vrow); else diffrow[k] = -1; if(vcol.size()) diffcol[k] = add_or(vcol); else diffcol[k] = -1; } vi ans; REP(k,K+1){ if(diffrow[k] != -1 and diffcol[K-k] != -1) ans.pb(add_and({diffrow[k],diffcol[K-k]})); } add_or(ans); }
#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...