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"
#pragma GCC optimize("O3")
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair < int, int > pii;
typedef pair < ll, ll > pll;
#define F first
#define S second
#define all(x) x.begin(), x.end()
#define SZ(x) (int)x.size()
#define Mp make_pair
#define endl "\n"
#define fast_io ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
const int N = 2e2 + 10;
const int LOG = 20;
const ll mod = 1e9 + 7;
const ll inf = 8e18;
int n, m, k;
inline int id(int i, int j)
{
return i * m + j;
}
int rowOr[N], rowXor[N], colOr[N], colXor[N], disX[N], disY[N];
vector < int > opt;
void construct_network(int _n, int _m, int _k)
{
n = _n; m = _m; k = _k;
for(int i = 0; i < n; i ++)
{
vector < int > now;
for(int j = 0; j < m; j ++)
{
now.push_back(id(i, j));
}
rowOr[i] = add_or(now);
rowXor[i] = add_xor(now);
}
for(int j = 0; j < m; j ++)
{
vector < int > now;
for(int i = 0; i < n; i ++)
{
now.push_back(id(i, j));
}
colOr[j] = add_or(now);
colXor[j] = add_xor(now);
}
for(int dx = max(0, k - (m - 1)); dx <= min(n - 1, k); dx ++)
{
vector < int > now;
for(int i = 0; i < n - dx; i ++)
{
if(dx == 0)
{
now.push_back(add_xor({rowOr[i], rowXor[i]}));
}
else
{
now.push_back(add_and({rowOr[i], rowOr[i + dx]}));
}
}
disX[dx] = add_or(now);
}
for(int dy = max(0, k - (n - 1)); dy <= min(m - 1, k); dy ++)
{
vector < int > now;
for(int i = 0; i < m - dy; i ++)
{
if(dy == 0)
{
now.push_back(add_xor({colOr[i], colXor[i]}));
}
else
{
now.push_back(add_and({colOr[i], colOr[i + dy]}));
}
}
disY[dy] = add_or(now);
}
for(int dx = max(0, k - (m - 1)); dx <= min(n - 1, k); dx ++)
{
int dy = k - dx;
opt.push_back(add_and({disX[dx], disY[dy]}));
}
add_or(opt);
}
# | 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... |