#include "vision.h"
#include <bits/stdc++.h>
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2")
//#define int long long
#define pii pair<int,int>
#define vi vector<int>
#define ff first
#define ss second
#define sp << " " <<
#define all(x) x.begin(),x.end()
#define big(x) ((int)(x.size()))
using namespace std;
const int MOD = 1e9+7, LIM = 1e6+1, inf = 2e9;
int H,W;
int pixel(int x,int y) {
return x*W+y;
};
int test(int K) {
map<int,vi> dia,ldia;
for (int i = 0;i<H;i++) {
for (int j = 0;j<W;j++) {
dia[i+j].push_back(pixel(i,j));
ldia[j-i].push_back(pixel(i,j));
}
}
map<int,int> id,id2;
for (auto it : dia) {
id[it.ff] = add_or(it.ss);
}
for (auto it : ldia) {
id2[it.ff] = add_or(it.ss);
}
vi imp;
for (auto it : dia) {
vi toor;
for (auto it2 : dia) {
if (abs(it.ff-it2.ff) >= K) {
toor.push_back(id[it2.ff]);
}
}
if (big(toor)) imp.push_back(add_and({id[it.ff],add_or(toor)}));
}
for (auto it : ldia) {
vi toor;
for (auto it2 : ldia) {
if (abs(it.ff-it2.ff) >= K) {
toor.push_back(id2[it2.ff]);
}
}
if (big(toor)) imp.push_back(add_and({id2[it.ff],add_or(toor)}));
}
if (big(imp)) return add_or(imp);
else return -1;
}
void construct_network(int H_, int W_, int K) {
H = H_,W = W_;
int lmao1 = test(K);
int lmao2 = test(K+1);
if (lmao2 == -1) add_and({lmao1});
else add_and({test(K),add_not(test(K+1))});
}
# | 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... |