This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "vision.h"
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define inf 1000000000
#define ll long long
#define fi first
#define se second
#define pii pair<int, int>
#define pll pair<ll, ll>
#define vi vector<int>
#define vl vector<ll>
#define vp vector<pii>
#define SET(a, b) memset(a, b, sizeof(a))
#define all(x) (x).begin(), (x).end()
#define FOR(i, a, b) for (int i = (a); i <= (b); i++)
#define FORD(i, a, b) for (int i = (a); i >= (b); i--)
vi diag[500], diag2[500];
int diag_one[500], diag_two[500], diag2_one[500], diag2_two[500];
void construct_network(int h, int w, int k) {
FOR(i, 0, h-1) {
FOR(j, 0, w-1) {
diag[i+j].pb(i*w+j);
diag2[i+w-1-j].pb(i*w+j);
}
}
FOR(i, 0, h+w-2) {
diag_one[i] = add_or(diag[i]);
diag2_one[i] = add_or(diag2[i]);
diag_two[i] = add_xor({add_xor(diag[i]), add_or(diag[i])});
diag2_two[i] = add_xor({add_xor(diag2[i]), add_or(diag2[i])});
}
vi one, two;
for (int j = 0; j + k <= h + w - 2; j++) {
vi query, ones;
FOR(l, j, j + k) {
query.pb(diag_two[l]);
ones.pb(diag_one[l]);
}
query.pb(add_xor({add_xor(ones), add_or(ones)}));
one.pb(add_or(query));
}
for (int j = 0; j + k <= h + w - 2; j++) {
vi query, ones;
FOR(l, j, j + k) {
query.pb(diag2_two[l]);
ones.pb(diag2_one[l]);
}
query.pb(add_xor({add_xor(ones), add_or(ones)}));
two.pb(add_or(query));
}
int id = add_and({add_or(one), add_or(two)});
//----
one.clear();
two.clear();
if (k == 1) {
return;
}
k--;
for (int j = 0; j + k <= h + w - 2; j++) {
vi query, ones;
FOR(l, j, j + k) {
query.pb(diag_two[l]);
ones.pb(diag_one[l]);
}
query.pb(add_xor({add_xor(ones), add_or(ones)}));
one.pb(add_or(query));
}
for (int j = 0; j + k <= h + w - 2; j++) {
vi query, ones;
FOR(l, j, j + k) {
query.pb(diag2_two[l]);
ones.pb(diag2_one[l]);
}
query.pb(add_xor({add_xor(ones), add_or(ones)}));
two.pb(add_or(query));
}
int id2 = add_and({add_or(one), add_or(two)});
add_and({id, add_not(id2)});
}
# | 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... |