#include <bits/stdc++.h>
#define forint(i, N) for (int i = 0; i < (N); i++)
using namespace std;
int add_not(int N);
int add_and(vector<int> N) ;
int add_or(vector<int> N) ;
int add_xor(vector<int> N) ;
void construct_network(int h, int w, int k) {
vector<int> right;
int vsize = h * w - 1;
for (int i = h - 1; i >= 1; i--) {
int a = i;
int b = 0;
vector<int> tmp;
while (b < w && a < h) {
tmp.push_back(a * w + b);
a++;
b++;
}
//cerr << "ja" << endl;
vsize++;
right.push_back(vsize);
add_or(tmp);
}
for (int i = 0; i < w; i++) {
int a = 0;
int b = i;
vector<int> tmp;
while (b < w && a < h) {
tmp.push_back(a * w + b);
a++;
b++;
}
vsize++;
right.push_back(vsize);
add_or(tmp);
}
//cerr << vsize << " right diagonal" << endl;
vector<int> left;
for (int i = 0; i < h - 1; i++) {
int a = i;
int b = 0;
vector<int> tmp;
while (b < w && a >= 0) {
tmp.push_back(a * w + b);
a--;
b++;
}
vsize++;
left.push_back(vsize);
add_or(tmp);
}
for (int i = 0; i < w; i++) {
int a = h - 1;
int b = i;
vector<int> tmp;
while (b < w && a >= 0) {
tmp.push_back(a * w + b);
a--;
b++;
}
vsize++;
left.push_back(vsize);
add_or(tmp);
}
//cerr << vsize << " left diagonal" << endl;
vector<int> right_test;
vector<int> left_test;
forint(i, w) {
vsize++;
right_test.push_back(vsize);
add_and({right[i], right[i + k]});
vsize++;
left_test.push_back(vsize);
add_and({left[i], left[i + k]});
}
vector<int> right2;
vector<int> left2;
forint(i, w) {
vector<int> tmp1;
vector<int> tmp2;
for (int j = i; j <= i + k; j++) {
tmp1.push_back(right[j]);
tmp2.push_back(left[j]);
}
vsize += 2;
add_or(tmp1);
add_xor(tmp1);
add_xor({vsize - 1, vsize});
vsize++;
right2.push_back(vsize);
vsize += 2;
add_or(tmp2);
add_xor(tmp2);
add_xor({vsize - 1, vsize});
vsize++;
left2.push_back(vsize);
}
vsize++;
add_or(right2);
//cerr << v[vsize] << endl;
vsize++;
add_or(left2);
vsize++;
add_or(right_test);
vsize++;
add_or(left_test);
//cerr << v[vsize] << endl;
vsize++;
add_and({vsize - 4, vsize - 1});
add_and({vsize - 3, vsize - 2});
vsize++;
add_or({vsize - 1, vsize});
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
1 ms |
288 KB |
on inputs (0, 0), (0, 2), expected 0, but computed 1 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
1 ms |
288 KB |
on inputs (0, 0), (0, 2), expected 0, but computed 1 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
1 ms |
288 KB |
on inputs (0, 0), (0, 2), expected 0, but computed 1 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
1 ms |
288 KB |
on inputs (0, 0), (0, 2), expected 0, but computed 1 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
3 ms |
460 KB |
on inputs (0, 0), (0, 198), expected 0, but computed 1 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
296 KB |
Output is correct |
2 |
Incorrect |
1 ms |
204 KB |
on inputs (0, 0), (0, 1), expected 0, but computed 1 |
3 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
14 ms |
1248 KB |
on inputs (80, 199), (81, 199), expected 1, but computed 0 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
1 ms |
288 KB |
on inputs (0, 0), (0, 2), expected 0, but computed 1 |
2 |
Halted |
0 ms |
0 KB |
- |