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>
#define X first
#define Y second
#define MP make_pair
#define ll long long
using namespace std;
void construct_network(int H, int W, int K) {
int ptr = H * W;
vector< int > rowIs(H), colIs(W), rowDist(H), colDist(W);
vector< vector<int> > rowInfo(H), colInfo(W);
for(int i = 0;i < H;i++){
vector< int > tmp;
for(int j = 0;j < W;j++){
tmp.push_back(W * i + j);
}
add_or(tmp), rowIs[i] = ptr++;
}
for(int j = 0;j < W;j++){
vector< int > tmp;
for(int i = 0;i < H;i++){
tmp.push_back(W * i + j);
}
add_or(tmp), colIs[j] = ptr++;
}
for(int i1 = 0;i1 < H;i1++){
for(int i2 = i1;i2 < H;i2++){
if(i1 == i2){
vector< int > tmp;
for(int i = 0;i < H;i++){
tmp.push_back(rowIs[i]);
}
add_xor(tmp);
}
else{
add_and({rowIs[i1], rowIs[i2]});
}
rowInfo[i2 - i1].push_back(ptr++);
}
}
for(int i1 = 0;i1 < W;i1++){
for(int i2 = i1;i2 < W;i2++){
if(i1 == i2){
vector< int > tmp;
for(int i = 0;i < W;i++){
tmp.push_back(colIs[i]);
}
add_xor(tmp);
}
else{
add_and({colIs[i1], colIs[i2]});
}
colInfo[i2 - i1].push_back(ptr++);
}
}
for(int i = 0;i < H;i++){
add_or(rowInfo[i]);
rowDist[i] = ptr++;
}
for(int i = 0;i < W;i++){
add_or(colInfo[i]);
colDist[i] = ptr++;
}
vector< int > fin;
for(int i = 0;i < H;i++){
for(int j = 0;j < W;j++){
if(i + j == K){
add_and({rowDist[i], colDist[j]});
fin.push_back(ptr++);
}
}
}
add_or(fin);
}
# | 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... |