Submission #155468

#TimeUsernameProblemLanguageResultExecution timeMemory
155468wilwxkVision Program (IOI19_vision)C++14
100 / 100
47 ms4984 KiB
#include "vision.h" #include <bits/stdc++.h> using namespace std; const int MAXN=403; int h, w, x, n; vector<int> aux[2][MAXN]; int v[2][MAXN]; int final, final2; int testa(int t) { vector<int> blocos[2]; for(int i=t-1; i<n; i++) { aux[0][0].clear(); aux[1][0].clear(); for(int j=i-(t-1); j<=i; j++) { aux[0][0].push_back(v[0][j]); aux[1][0].push_back(v[1][j]); } blocos[0].push_back({add_xor({add_or(aux[0][0]), add_xor(aux[0][0])})}); blocos[1].push_back({add_xor({add_or(aux[1][0]), add_xor(aux[1][0])})}); } int aa, bb; aa=add_or(blocos[0]); bb=add_or(blocos[1]); aux[0][0].clear(); for(int i=0; i<n; i++) aux[0][0].push_back(v[0][i]); aux[1][0].clear(); for(int i=0; i<n; i++) aux[1][0].push_back(v[1][i]); aa=add_or({aa, add_xor(aux[0][0])}); bb=add_or({bb, add_xor(aux[1][0])}); return add_and({aa, bb}); } void construct_network(int H, int W, int K) { h=H; w=W; x=K; n=h+w-1; for(int i=0; i<h; i++) { for(int j=0; j<w; j++) { int tipo=i+j; int tipo2=i+(w-j-1); int cur=i*w+j; aux[0][tipo].push_back(cur); aux[1][tipo2].push_back(cur); } } //constroi as diagonais for(int i=0; i<h+w-1; i++) { v[0][i]=add_or(aux[0][i]); v[1][i]=add_or(aux[1][i]); } add_xor({testa(x), testa(x+1)}); }
#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...