# | Submission time^{} |
Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|

643841 | 2022-09-23T05:33:55 Z | ymm | Vision Program (IOI19_vision) | C++17 | 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 add_xor({a, b}); add_and({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) add_xor({a, b}); add_xor({nxt, c}); add_and({a, b}); add_and({nxt, c}); add_or({nxt+2, nxt+3}); 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) { add_xor({n+(val&1)}); x[i] = nxt++; val >>= 1; } } void byte_cmp(int a[], int b[], int &x) { Loop (i,0,BITS) add_xor({a[i], b[i]}); vector<int> vec; Loop (i,0,BITS) vec.push_back(nxt+i); add_or(vec); add_not(nxt+BITS); 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; add_xor({0,0}); add_not(n); 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)); add_xor(vec); 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_add(marg, (dir?B:A), (dir?B:A)); } } byte_add(A, B, dis); 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); }

# | 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 |

# | 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 |

# | 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 |

# | 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 |

# | 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 |

# | 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 | - |

# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|

1 | Incorrect | 2 ms | 1232 KB | WA in grader: Too many instructions |

2 | Halted | 0 ms | 0 KB | - |

# | 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 | - |