Submission #1237127

#TimeUsernameProblemLanguageResultExecution timeMemory
1237127AMnuVision Program (IOI19_vision)C++20
100 / 100
41 ms7212 KiB
#include "vision.h" #include <bits/stdc++.h> using namespace std; const int MAXN=405; int N, M; vector <int> miring[MAXN]; vector <int> allor; vector <int> allxor; vector <int> segment; vector <int> ans; int adaxor(int l,int r) { segment.clear(); for (int i=l;i<=r;i++) { segment.push_back(allxor[i]); } return add_xor(segment); } int adaor(int l,int r) { segment.clear(); for (int i=l;i<=r;i++) { segment.push_back(allor[i]); } return add_or(segment); } int bisa(int K) { allor.clear(); allxor.clear(); for (int i=0;i<N+M-1;i++) { allor.push_back(add_or(miring[i])); allxor.push_back(add_xor(miring[i])); } ans.clear(); for (int i=K;i<N+M-1;i++) { ans.push_back(add_and({adaor(i-K,i),add_not(adaxor(i-K,i))})); } return add_or(ans); } int gabung(int x,int y,bool T) { if (T) { return x+y; } return x-y+M-1; } int dekat(int K,bool T) { for (int i=0;i<N+M-1;i++) { miring[i].clear(); } for (int i=0;i<N;i++) { for (int j=0;j<M;j++) { miring[gabung(i,j,T)].push_back(i*M+j); } } return bisa(K); } int jawab(int K) { return add_and({dekat(K,0),dekat(K,1)}); } void construct_network(int H,int W,int K) { N=H; M=W; add_and({jawab(K),add_not(jawab(K-1))}); 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...