Submission #1167325

#TimeUsernameProblemLanguageResultExecution timeMemory
1167325hyakupVision Program (IOI19_vision)C++20
100 / 100
34 ms3656 KiB
#include "vision.h" #include <bits/stdc++.h> using namespace std; void construct_network( int n, int m, int k ){ auto id = [&]( int i, int j ){ return i*m + j; }; vector<int> c, d; int a, b; vector<int> or1, or2, xor1, xor2; for( int x = 0; x < n + m - 1; x++ ){ vector<int> v; for( int i = 0; i < n; i++ ) for( int j = 0; j < m; j++ ) if( i + j == x ) v.push_back(id(i, j)); or1.push_back(add_or(v)); xor1.push_back(add_xor(v)); } for( int x = 1 - m; x < n; x++ ){ vector<int> v; for( int i = 0; i < n; i++ ) for( int j = 0; j < m; j++ ) if( i - j == x ) v.push_back(id(i, j)); or2.push_back(add_or(v)); xor2.push_back(add_xor(v)); } vector<int> v; for( int i = 0; i + k < n + m - 1; i++ ){ vector<int> aux = {or1[i], or1[i + k]}; v.push_back(add_and(aux)); } a = add_xor(v); v.clear(); for( int i = 0; i + k < n + m - 1; i++ ){ vector<int> aux = {or2[i], or2[i + k] }; v.push_back(add_and(aux)); } b = add_xor(v); for( int i = 0; i + k - 1 < n + m - 1; i++ ){ vector<int> aux, aux2; for( int j = i; j < i + k; j++ ) aux.push_back(or1[j]), aux2.push_back(xor1[j]); int x = add_xor(aux2), y = add_or(aux); x = add_not(x); aux = {x, y}; c.push_back(add_and(aux)); aux.clear(); aux2.clear(); for( int j = i; j < i + k; j++ ) aux.push_back(or2[j]), aux2.push_back(xor2[j]); x = add_xor(aux2); y = add_or(aux); x = add_not(x); aux = {x, y}; d.push_back(add_and(aux)); } vector<int> aux; int C = add_or(c); int D = add_or(d); aux = {a, D}; int e = add_and(aux); aux = {b, C}; int f = add_and(aux); aux = {a, b}; int g = add_and(aux); aux = { e, f, g }; add_or(aux); }
#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...