#include "vision.h"
#include <bits/stdc++.h>
using namespace std;
void construct_network( int n, int m, int k ){
int ops = n*m - 1;
auto id = [&]( int i, int j ){ return i*m + j; };
vector<int> c, d;
int a, b;
for( int dist = 0; dist <= k; dist++ ){
int p1 = 0, p2 = -dist;
vector<int> aux;
while( p2 <= (n + m - 2)){
vector<int> v;
for( int i = 0; i < n; i++ ) for( int j = 0; j < m; j++ ) if( i + j == p1 || i + j == p2 ) v.push_back(id(i, j));
if( !v.empty() ) aux.push_back(add_or(v));
p1++; p2++;
}
if( dist < k ) c.push_back(add_xor(aux));
else a = add_xor(aux);
p1 = 1 - m; p2 = 1 - m - dist;
aux.clear();
while( p2 <= n - 1 ){
vector<int> v;
for( int i = 0; i< n; i++ ) for( int j = 0; j < m; j++ ) if( i - j == p1 || i - j == p2 ) v.push_back(id(i, j));
if( !v.empty() ) aux.push_back(add_or(v));
p1++; p2++;
}
if( dist < k ) d.push_back(add_xor(aux));
else b = add_xor(aux);
}
int C = add_or(c);
int D = add_or(d);
vector<int> 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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |