#include <bits/stdc++.h>
#define forint(i, N) for (int i = 0; i < (N); i++)
using namespace std;
vector<int> v = {
0, 0, 1,
1, 0, 0};
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;
//cerr << "ja" << 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;
//cerr << "ja" << endl;
vector<int> right_test;
vector<int> left_test;
forint(i, right.size() - k) {
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]});
}
right_test.insert(right_test.end(), left_test.begin(), left_test.end());
int t1 = ++vsize;
add_or(right_test);
//cerr << vsize << "==" << (v.size()-1) << endl;
//cerr << ">=k " << v[t1] << ":" << t1 << "?" << (v.size()-1) << endl;
right_test.clear();
left_test.clear();
forint(i, right.size() - (k+1)) {
vsize++;
right_test.push_back(vsize);
add_and({right[i], right[i + k+1]});
vsize++;
left_test.push_back(vsize);
add_and({left[i], left[i + k+1]});
}
right_test.insert(right_test.end(), left_test.begin(), left_test.end());
int t2 = ++vsize;
//cerr << right_test.size() << "<---" << endl;
if (right_test.empty()) {
add_xor({0, 0});
cerr << "here" << endl;
cerr << ">=k+1 " << v[t2] << " -- " << v[v.size()-1] << endl;
}
else {
add_or(right_test);
}
vsize++;
add_not(t2);
//t2 = ++vsize;
//cerr << ">=k+1 " << v[t2] << endl;
add_and({t1, vsize});
}
Compilation message
vision.cpp: In function 'void construct_network(int, int, int)':
vision.cpp:3:40: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
3 | #define forint(i, N) for (int i = 0; i < (N); i++)
| ^
vision.cpp:115:2: note: in expansion of macro 'forint'
115 | forint(i, right.size() - k) {
| ^~~~~~
vision.cpp:3:40: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
3 | #define forint(i, N) for (int i = 0; i < (N); i++)
| ^
vision.cpp:136:2: note: in expansion of macro 'forint'
136 | forint(i, right.size() - (k+1)) {
| ^~~~~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
204 KB |
Output is correct |
2 |
Correct |
0 ms |
204 KB |
Output is correct |
3 |
Correct |
1 ms |
204 KB |
Output is correct |
4 |
Correct |
1 ms |
204 KB |
Output is correct |
5 |
Correct |
1 ms |
204 KB |
Output is correct |
6 |
Correct |
1 ms |
204 KB |
Output is correct |
7 |
Incorrect |
0 ms |
204 KB |
on inputs (0, 2), (1, 0), expected 0, but computed 1 |
8 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
204 KB |
Output is correct |
2 |
Correct |
0 ms |
204 KB |
Output is correct |
3 |
Correct |
1 ms |
204 KB |
Output is correct |
4 |
Correct |
1 ms |
204 KB |
Output is correct |
5 |
Correct |
1 ms |
204 KB |
Output is correct |
6 |
Correct |
1 ms |
204 KB |
Output is correct |
7 |
Incorrect |
0 ms |
204 KB |
on inputs (0, 2), (1, 0), expected 0, but computed 1 |
8 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
204 KB |
Output is correct |
2 |
Correct |
0 ms |
204 KB |
Output is correct |
3 |
Correct |
1 ms |
204 KB |
Output is correct |
4 |
Correct |
1 ms |
204 KB |
Output is correct |
5 |
Correct |
1 ms |
204 KB |
Output is correct |
6 |
Correct |
1 ms |
204 KB |
Output is correct |
7 |
Incorrect |
0 ms |
204 KB |
on inputs (0, 2), (1, 0), expected 0, but computed 1 |
8 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
204 KB |
Output is correct |
2 |
Correct |
0 ms |
204 KB |
Output is correct |
3 |
Correct |
1 ms |
204 KB |
Output is correct |
4 |
Correct |
1 ms |
204 KB |
Output is correct |
5 |
Correct |
1 ms |
204 KB |
Output is correct |
6 |
Correct |
1 ms |
204 KB |
Output is correct |
7 |
Incorrect |
0 ms |
204 KB |
on inputs (0, 2), (1, 0), expected 0, but computed 1 |
8 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
332 KB |
Output is correct |
2 |
Correct |
1 ms |
332 KB |
Output is correct |
3 |
Correct |
1 ms |
332 KB |
Output is correct |
4 |
Correct |
1 ms |
204 KB |
Output is correct |
5 |
Correct |
1 ms |
332 KB |
Output is correct |
6 |
Correct |
1 ms |
368 KB |
Output is correct |
7 |
Correct |
1 ms |
332 KB |
Output is correct |
8 |
Correct |
1 ms |
324 KB |
Output is correct |
9 |
Correct |
1 ms |
332 KB |
Output is correct |
10 |
Correct |
1 ms |
332 KB |
Output is correct |
11 |
Correct |
1 ms |
332 KB |
Output is correct |
12 |
Correct |
1 ms |
332 KB |
Output is correct |
13 |
Correct |
1 ms |
332 KB |
Output is correct |
14 |
Correct |
1 ms |
204 KB |
Output is correct |
15 |
Correct |
1 ms |
332 KB |
Output is correct |
16 |
Correct |
1 ms |
332 KB |
Output is correct |
17 |
Correct |
1 ms |
332 KB |
Output is correct |
18 |
Correct |
1 ms |
332 KB |
Output is correct |
19 |
Correct |
1 ms |
332 KB |
Output is correct |
20 |
Correct |
1 ms |
332 KB |
Output is correct |
21 |
Correct |
0 ms |
204 KB |
Output is correct |
22 |
Correct |
0 ms |
204 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
204 KB |
Output is correct |
2 |
Correct |
1 ms |
204 KB |
Output is correct |
3 |
Correct |
2 ms |
332 KB |
Output is correct |
4 |
Correct |
2 ms |
332 KB |
Output is correct |
5 |
Correct |
1 ms |
332 KB |
Output is correct |
6 |
Correct |
1 ms |
332 KB |
Output is correct |
7 |
Correct |
1 ms |
332 KB |
Output is correct |
8 |
Correct |
3 ms |
460 KB |
Output is correct |
9 |
Correct |
3 ms |
460 KB |
Output is correct |
10 |
Correct |
2 ms |
332 KB |
Output is correct |
11 |
Correct |
2 ms |
332 KB |
Output is correct |
12 |
Correct |
2 ms |
332 KB |
Output is correct |
13 |
Correct |
1 ms |
332 KB |
Output is correct |
14 |
Correct |
1 ms |
332 KB |
Output is correct |
15 |
Correct |
1 ms |
332 KB |
Output is correct |
16 |
Correct |
1 ms |
204 KB |
Output is correct |
17 |
Correct |
1 ms |
332 KB |
Output is correct |
18 |
Correct |
1 ms |
332 KB |
Output is correct |
19 |
Correct |
1 ms |
332 KB |
Output is correct |
20 |
Correct |
6 ms |
716 KB |
Output is correct |
21 |
Incorrect |
6 ms |
716 KB |
on inputs (0, 0), (199, 99), expected 0, but computed 1 |
22 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
11 ms |
1300 KB |
on inputs (126, 120), (176, 169), expected 0, but computed 1 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
204 KB |
Output is correct |
2 |
Correct |
0 ms |
204 KB |
Output is correct |
3 |
Correct |
1 ms |
204 KB |
Output is correct |
4 |
Correct |
1 ms |
204 KB |
Output is correct |
5 |
Correct |
1 ms |
204 KB |
Output is correct |
6 |
Correct |
1 ms |
204 KB |
Output is correct |
7 |
Incorrect |
0 ms |
204 KB |
on inputs (0, 2), (1, 0), expected 0, but computed 1 |
8 |
Halted |
0 ms |
0 KB |
- |