Submission #979120

#TimeUsernameProblemLanguageResultExecution timeMemory
979120hmm789Vision Program (IOI19_vision)C++14
100 / 100
35 ms4824 KiB
#include "vision.h" #include <bits/stdc++.h> using namespace std; void construct_network(int H, int W, int K) { int a[H][W], d1[H+W-1], d2[H+W-1]; for(int i = 0; i < H; i++) { for(int j = 0; j < W; j++) { a[i][j] = i*W+j; } } vector<int> v2; for(int i = 0; i < H+W-1; i++) { vector<int> v; int x, y; if(i < H) x = H-i-1, y = 0; else x = 0, y = i-H+1; while(x < H && y < W) { v.push_back(a[x][y]); x++; y++; } d1[i] = add_xor(v); v2.push_back(d1[i]); } int d1e = add_not(add_or(v2)); v2.clear(); for(int i = 0; i < H+W-1; i++) { vector<int> v; int x, y; if(i < W) x = 0, y = i; else x = i-W+1, y = W-1; while(x < H && y >= 0) { v.push_back(a[x][y]); x++; y--; } d2[i] = add_xor(v); v2.push_back(d2[i]); } int d2e = add_not(add_or(v2)); v2.clear(); for(int i = 0; i < H+W-1-K; i++) { vector<int> v; for(int j = i; j <= i+K; j++) v.push_back(d1[j]); v2.push_back(add_and({add_or(v), add_not(add_xor(v))})); } v2.push_back(d1e); int d1k = add_or(v2); v2.clear(); for(int i = 0; i < H+W-K; i++) { vector<int> v; for(int j = i; j <= i+K-1; j++) v.push_back(d1[j]); v2.push_back(add_and({add_or(v), add_not(add_xor(v))})); } v2.push_back(d1e); int d1k2 = add_or(v2); v2.clear(); for(int i = 0; i < H+W-1-K; i++) { vector<int> v; for(int j = i; j <= i+K; j++) v.push_back(d2[j]); v2.push_back(add_and({add_or(v), add_not(add_xor(v))})); } v2.push_back(d2e); int d2k = add_or(v2); v2.clear(); for(int i = 0; i < H+W-K; i++) { vector<int> v; for(int j = i; j <= i+K-1; j++) v.push_back(d2[j]); v2.push_back(add_and({add_or(v), add_not(add_xor(v))})); } v2.push_back(d2e); int d2k2 = add_or(v2); v2.clear(); add_and({add_or({add_and({d1k, add_not(d1k2)}), add_and({d2k, add_not(d2k2)})}), d1k, d2k}); }
#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...