#include "vision.h"
#include <bits/stdc++.h>
using namespace std;
using vi = vector<int>;
const int N = 401;
int H, W, K;
vi getdia1(int r, int c) {
vi cells;
for(;;) {
cells.push_back(r * W + c);
r--, c++;
if(r < 0 || c >= W) break;
}
return cells;
}
vi getdia2(int r, int c) {
vi cells;
for(;;) {
cells.push_back(r * W + c);
r--, c--;
if(r < 0 || c < 0) break;
}
return cells;
}
int dia1[N + N], dia2[N + N];
int prefix1[N + N], prefix2[N + N];
void construct_network(int h, int w, int k) {
H = h, W = w, K = k;
// for(int i = 0; i < h; i++) {
// vi cells = getdia1(i, 0);
// dia1[i] = add_xor(cells);
// }
// for(int j = 1; j < w; j++) {
// vi cells = getdia1(h - 1, j);
// dia1[h - 1 + j] = add_xor(cells);
// }
// for(int i = 0; i < h + w - 1; i++) {
// vi tmp;
// for(int j = 0; j <= i; j++) tmp.push_back(dia1[j]);
// prefix1[i] = add_xor(tmp);
// }
vi KKdifres, Kdifres;
// for(int i = 0; i + K < h + w - 1; i++) {
// vi tmp(2);
// tmp[0] = prefix1[i];
// tmp[1] = prefix1[i + K];
// KKdifres.push_back(add_and(tmp));
// }
// for(int i = 0; i + K - 1 < h + w - 1; i++) {
// vi tmp(2);
// tmp[0] = prefix1[i];
// tmp[1] = prefix1[i + K - 1];
// Kdifres.push_back(add_and(tmp));
// }
int greaterthanK, greaterthanKK;
// greaterthanK = add_or(Kdifres);
// greaterthanKK = add_or(KKdifres);
vi tt(2);
// tt[0] = greaterthanK;
// tt[1] = greaterthanKK;
// int result1 = add_xor(tt);
for(int i = 0; i < h; i++) {
vi cells = getdia2(i, w - 1);
dia2[i - w + 1 + w] = add_xor(cells);
}
for(int j = w - 2; j >= 0; j--) {
vi cells = getdia2(h - 1, j);
dia2[h - 1 - j + w] = add_xor(cells);
}
for(int i = 1; i <= h - 1 + w; i++) {
vi tmp;
for(int j = 1; j <= i; j++) tmp.push_back(dia2[j]);
prefix2[i] = add_xor(tmp);
}
KKdifres.clear(); Kdifres.clear();
for(int i = 1; i + K <= h + w - 1; i++) {
vi tmp(2);
tmp[0] = prefix2[i];
tmp[1] = prefix2[i + K];
KKdifres.push_back(add_and(tmp));
}
for(int i = 1; i + K - 1 <= h + w - 1; i++) {
vi tmp(2);
tmp[0] = prefix2[i];
tmp[1] = prefix2[i + K - 1];
Kdifres.push_back(add_and(tmp));
}
greaterthanK = add_or(Kdifres);
greaterthanKK = add_or(KKdifres);
tt[0] = greaterthanK;
tt[1] = greaterthanKK;
int result2 = add_xor(tt);
// tt[0] = result1;
// tt[1] = result2;
// add_or(tt);
}
Compilation message
vision.cpp: In function 'void construct_network(int, int, int)':
vision.cpp:102:7: warning: unused variable 'result2' [-Wunused-variable]
102 | int result2 = add_xor(tt);
| ^~~~~~~
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
384 KB |
Output is correct |
2 |
Correct |
1 ms |
256 KB |
Output is correct |
3 |
Correct |
0 ms |
256 KB |
Output is correct |
4 |
Correct |
1 ms |
256 KB |
Output is correct |
5 |
Correct |
0 ms |
256 KB |
Output is correct |
6 |
Incorrect |
1 ms |
384 KB |
on inputs (0, 0), (1, 1), expected 1, but computed 0 |
7 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
384 KB |
Output is correct |
2 |
Correct |
1 ms |
256 KB |
Output is correct |
3 |
Correct |
0 ms |
256 KB |
Output is correct |
4 |
Correct |
1 ms |
256 KB |
Output is correct |
5 |
Correct |
0 ms |
256 KB |
Output is correct |
6 |
Incorrect |
1 ms |
384 KB |
on inputs (0, 0), (1, 1), expected 1, but computed 0 |
7 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
384 KB |
Output is correct |
2 |
Correct |
1 ms |
256 KB |
Output is correct |
3 |
Correct |
0 ms |
256 KB |
Output is correct |
4 |
Correct |
1 ms |
256 KB |
Output is correct |
5 |
Correct |
0 ms |
256 KB |
Output is correct |
6 |
Incorrect |
1 ms |
384 KB |
on inputs (0, 0), (1, 1), expected 1, but computed 0 |
7 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
384 KB |
Output is correct |
2 |
Correct |
1 ms |
256 KB |
Output is correct |
3 |
Correct |
0 ms |
256 KB |
Output is correct |
4 |
Correct |
1 ms |
256 KB |
Output is correct |
5 |
Correct |
0 ms |
256 KB |
Output is correct |
6 |
Incorrect |
1 ms |
384 KB |
on inputs (0, 0), (1, 1), expected 1, but computed 0 |
7 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
4 ms |
512 KB |
Output is correct |
2 |
Correct |
3 ms |
512 KB |
Output is correct |
3 |
Correct |
3 ms |
512 KB |
Output is correct |
4 |
Correct |
3 ms |
512 KB |
Output is correct |
5 |
Correct |
3 ms |
512 KB |
Output is correct |
6 |
Correct |
3 ms |
512 KB |
Output is correct |
7 |
Correct |
3 ms |
512 KB |
Output is correct |
8 |
Correct |
3 ms |
512 KB |
Output is correct |
9 |
Correct |
3 ms |
512 KB |
Output is correct |
10 |
Correct |
3 ms |
512 KB |
Output is correct |
11 |
Correct |
3 ms |
512 KB |
Output is correct |
12 |
Correct |
3 ms |
512 KB |
Output is correct |
13 |
Correct |
3 ms |
512 KB |
Output is correct |
14 |
Correct |
3 ms |
512 KB |
Output is correct |
15 |
Correct |
3 ms |
512 KB |
Output is correct |
16 |
Correct |
3 ms |
512 KB |
Output is correct |
17 |
Correct |
3 ms |
512 KB |
Output is correct |
18 |
Correct |
3 ms |
512 KB |
Output is correct |
19 |
Correct |
3 ms |
512 KB |
Output is correct |
20 |
Correct |
3 ms |
512 KB |
Output is correct |
21 |
Correct |
1 ms |
256 KB |
Output is correct |
22 |
Correct |
1 ms |
256 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
256 KB |
Output is correct |
2 |
Incorrect |
1 ms |
384 KB |
on inputs (0, 0), (1, 1), expected 1, but computed 0 |
3 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
15 ms |
1664 KB |
on inputs (126, 120), (176, 169), expected 0, but computed 1 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
384 KB |
Output is correct |
2 |
Correct |
1 ms |
256 KB |
Output is correct |
3 |
Correct |
0 ms |
256 KB |
Output is correct |
4 |
Correct |
1 ms |
256 KB |
Output is correct |
5 |
Correct |
0 ms |
256 KB |
Output is correct |
6 |
Incorrect |
1 ms |
384 KB |
on inputs (0, 0), (1, 1), expected 1, but computed 0 |
7 |
Halted |
0 ms |
0 KB |
- |