## Submission #643841

# Submission time Handle Problem Language Result Execution time Memory
643841 2022-09-23T05:33:55 Z ymm Vision Program (IOI19_vision) C++17
59 / 100
7 ms 1236 KB
```#include "vision.h"
#include <bits/stdc++.h>
#define Loop(x,l,r) for (ll x = (l); x < (r); ++x)
#define LoopR(x,l,r) for (ll x = (r)-1; x >= (l); --x)
typedef long long ll;
typedef std::pair<int, int> pii;
typedef std::pair<ll , ll > pll;
using namespace std;

const int N = 40'010;
int h, w, k;
int n;
int nxt;
const int BITS = 9;

int get_n(int x, int y) { return 0 <= x && x < h && 0 <= y && y < w? x*w + y: -1;}

void ha(int a, int b, int &x, int &y)
{
// a^b  a&b
x = nxt;
y = nxt+1;
nxt += 2;
}
void fa(int a, int b, int c, int &x, int &y)
{
// a^b  a^b^c  a&b  (a^b)&c  (a&b)|((a^b)&c)
x = nxt+1;
y = nxt+4;
nxt += 5;
}
void byte_add(int a[], int b[], int x[])
{
int c[BITS];
ha(a[0], b[0], x[0], c[0]);
Loop (i,1,BITS)
fa(a[i], b[i], c[i-1], x[i], c[i]);
}
void byte_write(int val, int x[])
{
Loop (i,0,BITS) {
x[i] = nxt++;
val >>= 1;
}
}
void byte_cmp(int a[], int b[], int &x)
{
Loop (i,0,BITS)
vector<int> vec;
Loop (i,0,BITS)
vec.push_back(nxt+i);
x = nxt+BITS+1;
nxt += BITS+2;
}

void construct_network(int H, int W, int K)
{
h = H; w = W; k = K;
n = w*h;
nxt = n+2;
int A[BITS], B[BITS];
int dis[BITS], goal[BITS];
Loop (dir,0,2) {
int kooft = nxt;
int lst = n;
Loop (j,0,dir?h:w) {
vector<int> vec;
vec.push_back(lst);
Loop (i,0,dir?w:h)
vec.push_back(get_n(dir?j:i, dir?i:j));
lst=nxt++;
}
int marg[BITS];
Loop (i,0,BITS)
(dir?B:A)[i] = marg[i] = n;
Loop (j,0,dir?h:w) {
marg[0] = kooft+j;
}
}
byte_write(k, goal);
int ans;
byte_cmp(dis, goal, ans);
//printf("a = %d\nb = %d\nsum = %d\nk = %d\n", n+2, n+11, dis, goal);
}
```

#### Subtask #1 10.0 / 10.0

# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 1 ms 212 KB Output is correct
9 Correct 1 ms 212 KB Output is correct
10 Correct 1 ms 212 KB Output is correct
11 Correct 0 ms 212 KB Output is correct
12 Correct 1 ms 212 KB Output is correct
13 Correct 1 ms 212 KB Output is correct
14 Correct 1 ms 212 KB Output is correct
15 Correct 0 ms 212 KB Output is correct
16 Correct 0 ms 212 KB Output is correct
17 Correct 1 ms 212 KB Output is correct
18 Correct 1 ms 212 KB Output is correct

#### Subtask #2 11.0 / 11.0

# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 1 ms 212 KB Output is correct
9 Correct 1 ms 212 KB Output is correct
10 Correct 1 ms 212 KB Output is correct
11 Correct 0 ms 212 KB Output is correct
12 Correct 1 ms 212 KB Output is correct
13 Correct 1 ms 212 KB Output is correct
14 Correct 1 ms 212 KB Output is correct
15 Correct 0 ms 212 KB Output is correct
16 Correct 0 ms 212 KB Output is correct
17 Correct 1 ms 212 KB Output is correct
18 Correct 1 ms 212 KB Output is correct
19 Correct 1 ms 340 KB Output is correct
20 Correct 1 ms 340 KB Output is correct
21 Correct 1 ms 340 KB Output is correct
22 Correct 1 ms 340 KB Output is correct
23 Correct 1 ms 340 KB Output is correct
24 Correct 1 ms 340 KB Output is correct
25 Correct 1 ms 300 KB Output is correct
26 Correct 1 ms 340 KB Output is correct
27 Correct 1 ms 340 KB Output is correct

#### Subtask #3 11.0 / 11.0

# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 1 ms 212 KB Output is correct
9 Correct 1 ms 212 KB Output is correct
10 Correct 1 ms 212 KB Output is correct
11 Correct 0 ms 212 KB Output is correct
12 Correct 1 ms 212 KB Output is correct
13 Correct 1 ms 212 KB Output is correct
14 Correct 1 ms 212 KB Output is correct
15 Correct 0 ms 212 KB Output is correct
16 Correct 0 ms 212 KB Output is correct
17 Correct 1 ms 212 KB Output is correct
18 Correct 1 ms 212 KB Output is correct
19 Correct 1 ms 340 KB Output is correct
20 Correct 1 ms 340 KB Output is correct
21 Correct 1 ms 340 KB Output is correct
22 Correct 1 ms 340 KB Output is correct
23 Correct 1 ms 340 KB Output is correct
24 Correct 1 ms 340 KB Output is correct
25 Correct 1 ms 300 KB Output is correct
26 Correct 1 ms 340 KB Output is correct
27 Correct 1 ms 340 KB Output is correct
28 Correct 3 ms 468 KB Output is correct
29 Correct 2 ms 340 KB Output is correct
30 Correct 1 ms 340 KB Output is correct
31 Correct 2 ms 340 KB Output is correct
32 Correct 2 ms 340 KB Output is correct
33 Correct 2 ms 468 KB Output is correct
34 Correct 2 ms 468 KB Output is correct
35 Correct 2 ms 468 KB Output is correct
36 Correct 2 ms 468 KB Output is correct
37 Correct 2 ms 596 KB Output is correct

#### Subtask #4 15.0 / 15.0

# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 1 ms 212 KB Output is correct
9 Correct 1 ms 212 KB Output is correct
10 Correct 1 ms 212 KB Output is correct
11 Correct 0 ms 212 KB Output is correct
12 Correct 1 ms 212 KB Output is correct
13 Correct 1 ms 212 KB Output is correct
14 Correct 1 ms 212 KB Output is correct
15 Correct 0 ms 212 KB Output is correct
16 Correct 0 ms 212 KB Output is correct
17 Correct 1 ms 212 KB Output is correct
18 Correct 1 ms 212 KB Output is correct
19 Correct 1 ms 340 KB Output is correct
20 Correct 1 ms 340 KB Output is correct
21 Correct 1 ms 340 KB Output is correct
22 Correct 1 ms 340 KB Output is correct
23 Correct 1 ms 340 KB Output is correct
24 Correct 1 ms 340 KB Output is correct
25 Correct 1 ms 300 KB Output is correct
26 Correct 1 ms 340 KB Output is correct
27 Correct 1 ms 340 KB Output is correct
28 Correct 3 ms 468 KB Output is correct
29 Correct 2 ms 340 KB Output is correct
30 Correct 1 ms 340 KB Output is correct
31 Correct 2 ms 340 KB Output is correct
32 Correct 2 ms 340 KB Output is correct
33 Correct 2 ms 468 KB Output is correct
34 Correct 2 ms 468 KB Output is correct
35 Correct 2 ms 468 KB Output is correct
36 Correct 2 ms 468 KB Output is correct
37 Correct 2 ms 596 KB Output is correct
38 Correct 6 ms 1104 KB Output is correct
39 Correct 3 ms 596 KB Output is correct
40 Correct 3 ms 596 KB Output is correct
41 Correct 6 ms 848 KB Output is correct
42 Correct 4 ms 848 KB Output is correct
43 Correct 6 ms 1104 KB Output is correct
44 Correct 6 ms 1056 KB Output is correct
45 Correct 7 ms 1104 KB Output is correct
46 Correct 7 ms 1060 KB Output is correct
47 Correct 7 ms 1104 KB Output is correct

#### Subtask #5 12.0 / 12.0

# Verdict Execution time Memory Grader output
1 Correct 4 ms 976 KB Output is correct
2 Correct 5 ms 976 KB Output is correct
3 Correct 5 ms 976 KB Output is correct
4 Correct 5 ms 976 KB Output is correct
5 Correct 5 ms 976 KB Output is correct
6 Correct 5 ms 1052 KB Output is correct
7 Correct 4 ms 976 KB Output is correct
8 Correct 5 ms 1064 KB Output is correct
9 Correct 5 ms 976 KB Output is correct
10 Correct 5 ms 976 KB Output is correct
11 Correct 4 ms 976 KB Output is correct
12 Correct 5 ms 976 KB Output is correct
13 Correct 5 ms 976 KB Output is correct
14 Correct 7 ms 976 KB Output is correct
15 Correct 5 ms 976 KB Output is correct
16 Correct 6 ms 976 KB Output is correct
17 Correct 5 ms 976 KB Output is correct
18 Correct 5 ms 976 KB Output is correct
19 Correct 5 ms 976 KB Output is correct
20 Correct 5 ms 976 KB Output is correct
21 Correct 1 ms 212 KB Output is correct
22 Correct 1 ms 212 KB Output is correct

#### Subtask #6 0 / 8.0

# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 4 ms 720 KB Output is correct
4 Correct 4 ms 744 KB Output is correct
5 Correct 4 ms 720 KB Output is correct
6 Correct 4 ms 688 KB Output is correct
7 Correct 4 ms 724 KB Output is correct
8 Correct 6 ms 976 KB Output is correct
9 Correct 5 ms 1104 KB Output is correct
10 Correct 5 ms 976 KB Output is correct
11 Correct 5 ms 976 KB Output is correct
12 Correct 6 ms 976 KB Output is correct
13 Correct 5 ms 976 KB Output is correct
14 Correct 5 ms 976 KB Output is correct
15 Correct 5 ms 1068 KB Output is correct
16 Correct 5 ms 976 KB Output is correct
17 Correct 5 ms 1068 KB Output is correct
18 Correct 4 ms 976 KB Output is correct
19 Correct 4 ms 976 KB Output is correct
20 Incorrect 2 ms 1236 KB WA in grader: Too many instructions
21 Halted 0 ms 0 KB -

#### Subtask #7 0 / 14.0

# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 1232 KB WA in grader: Too many instructions
2 Halted 0 ms 0 KB -

#### Subtask #8 0 / 19.0

# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 1 ms 212 KB Output is correct
9 Correct 1 ms 212 KB Output is correct
10 Correct 1 ms 212 KB Output is correct
11 Correct 0 ms 212 KB Output is correct
12 Correct 1 ms 212 KB Output is correct
13 Correct 1 ms 212 KB Output is correct
14 Correct 1 ms 212 KB Output is correct
15 Correct 0 ms 212 KB Output is correct
16 Correct 0 ms 212 KB Output is correct
17 Correct 1 ms 212 KB Output is correct
18 Correct 1 ms 212 KB Output is correct
19 Correct 1 ms 340 KB Output is correct
20 Correct 1 ms 340 KB Output is correct
21 Correct 1 ms 340 KB Output is correct
22 Correct 1 ms 340 KB Output is correct
23 Correct 1 ms 340 KB Output is correct
24 Correct 1 ms 340 KB Output is correct
25 Correct 1 ms 300 KB Output is correct
26 Correct 1 ms 340 KB Output is correct
27 Correct 1 ms 340 KB Output is correct
28 Correct 3 ms 468 KB Output is correct
29 Correct 2 ms 340 KB Output is correct
30 Correct 1 ms 340 KB Output is correct
31 Correct 2 ms 340 KB Output is correct
32 Correct 2 ms 340 KB Output is correct
33 Correct 2 ms 468 KB Output is correct
34 Correct 2 ms 468 KB Output is correct
35 Correct 2 ms 468 KB Output is correct
36 Correct 2 ms 468 KB Output is correct
37 Correct 2 ms 596 KB Output is correct
38 Correct 6 ms 1104 KB Output is correct
39 Correct 3 ms 596 KB Output is correct
40 Correct 3 ms 596 KB Output is correct
41 Correct 6 ms 848 KB Output is correct
42 Correct 4 ms 848 KB Output is correct
43 Correct 6 ms 1104 KB Output is correct
44 Correct 6 ms 1056 KB Output is correct
45 Correct 7 ms 1104 KB Output is correct
46 Correct 7 ms 1060 KB Output is correct
47 Correct 7 ms 1104 KB Output is correct
48 Correct 4 ms 976 KB Output is correct
49 Correct 5 ms 976 KB Output is correct
50 Correct 5 ms 976 KB Output is correct
51 Correct 5 ms 976 KB Output is correct
52 Correct 5 ms 976 KB Output is correct
53 Correct 5 ms 1052 KB Output is correct
54 Correct 4 ms 976 KB Output is correct
55 Correct 5 ms 1064 KB Output is correct
56 Correct 5 ms 976 KB Output is correct
57 Correct 5 ms 976 KB Output is correct
58 Correct 4 ms 976 KB Output is correct
59 Correct 5 ms 976 KB Output is correct
60 Correct 5 ms 976 KB Output is correct
61 Correct 7 ms 976 KB Output is correct
62 Correct 5 ms 976 KB Output is correct
63 Correct 6 ms 976 KB Output is correct
64 Correct 5 ms 976 KB Output is correct
65 Correct 5 ms 976 KB Output is correct
66 Correct 5 ms 976 KB Output is correct
67 Correct 5 ms 976 KB Output is correct
68 Correct 1 ms 212 KB Output is correct
69 Correct 1 ms 212 KB Output is correct
70 Correct 1 ms 212 KB Output is correct
71 Correct 1 ms 212 KB Output is correct
72 Correct 4 ms 720 KB Output is correct
73 Correct 4 ms 744 KB Output is correct
74 Correct 4 ms 720 KB Output is correct
75 Correct 4 ms 688 KB Output is correct
76 Correct 4 ms 724 KB Output is correct
77 Correct 6 ms 976 KB Output is correct
78 Correct 5 ms 1104 KB Output is correct
79 Correct 5 ms 976 KB Output is correct
80 Correct 5 ms 976 KB Output is correct
81 Correct 6 ms 976 KB Output is correct
82 Correct 5 ms 976 KB Output is correct
83 Correct 5 ms 976 KB Output is correct
84 Correct 5 ms 1068 KB Output is correct
85 Correct 5 ms 976 KB Output is correct
86 Correct 5 ms 1068 KB Output is correct
87 Correct 4 ms 976 KB Output is correct
88 Correct 4 ms 976 KB Output is correct
89 Incorrect 2 ms 1236 KB WA in grader: Too many instructions
90 Halted 0 ms 0 KB -