제출 #1071197

#제출 시각아이디문제언어결과실행 시간메모리
1071197pccVision Program (IOI19_vision)C++17
29 / 100
2 ms1236 KiB
#include "vision.h" #include <bits/stdc++.h> using namespace std; #define pii pair<int,int> #define fs first #define sc second int H,W,K; int encode(int r,int c){ return r*W+c; } pii decode(int k){ return pii(k/W,k%W); } void construct_network(int HH, int WW, int KK) { set<pii> st; H = HH,W = WW,K = KK; int ans = add_xor({0,0}); if(max(H,W)>30){ for(int i = 0;i<H;i++){ for(int j = 0;j<W;j++){ if(i+j == K){ ans = add_or({ans,encode(i,j)}); } } } return; } for(int r1 = 0;r1<H;r1++){ for(int c1 = 0;c1<W;c1++){ for(int r2 = 0;r2<H;r2++){ for(int c2 = 0;c2<W;c2++){ if(abs(r1-r2)+abs(c1-c2) == K){ pii p = pii(encode(r1,c1),encode(r2,c2)); if(p.fs>p.sc)swap(p.fs,p.sc); if(st.find(p) != st.end())continue; st.insert(p); int tmp = add_and({encode(r1,c1),encode(r2,c2)}); ans = add_or({ans,tmp}); } } } } } 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...