Submission #959513

# Submission time Handle Problem Language Result Execution time Memory
959513 2024-04-08T11:13:39 Z AkibAzmain Vision Program (IOI19_vision) C++17
100 / 100
12 ms 1680 KB
#include "vision.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;

void construct_network(int h, int w, int k)
{
  auto gv = [&] (int x, int y)
  {
    return x * w + y;
  };
  auto fa = [] (int a, int b, int x)
  {
    return make_pair (add_xor ({ a, b, x }),
                      add_or ({ add_and ({ a, b }),
                          add_and ({ b, x }),
                          add_and ({ x, a }) }));
  };
  int nl = add_and ({ gv (0, 0), add_not (gv (0, 0)) });
  int ob = add_not (nl);
  vector < vector < int > > a;
  a.push_back ({ nl });
  for (int i = 0; i < h; ++i)
    {
      vector < int > xa (w + 1);
      for (int j = 0; j < w; ++j) xa[j] = gv (i, j);
      xa[w] = a.back ()[0];
      a.push_back ({ add_xor (xa) });
    }
  for (int j = 0; j < w; ++j)
    {
      vector < int > xa (h + 1);
      for (int i = 0; i < h; ++i) xa[i] = gv (i, j);
      xa[h] = a.back ()[0];
      a.push_back ({ add_xor (xa) });
    }
  while (a.size () != 512) a.push_back ({ nl });
  while (a.size () > 1)
    {
      vector < vector < int > > a2;
      for (int i = 0; i < a.size (); i += 2)
        {
          vector < int > bs (a[i].size () + 1, nl);
          for (int j = 0; j < a[i].size (); ++j)
            tie (bs[j], bs[j + 1]) = fa (a[i][j], a[i + 1][j], bs[j]);
          a2.push_back (bs);
        }
      swap (a, a2);
    }
  vector < int > ans (9);
  for (int i = 0; i < 9; ++i) ans[i] = add_xor ({ a[0][i], ((k & (1 << i)) ? ob : nl) });
  add_not (add_or (ans));
}

Compilation message

vision.cpp: In function 'void construct_network(int, int, int)':
vision.cpp:41:25: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   41 |       for (int i = 0; i < a.size (); i += 2)
      |                       ~~^~~~~~~~~~~
vision.cpp:44:29: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   44 |           for (int j = 0; j < a[i].size (); ++j)
      |                           ~~^~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 3 ms 984 KB Output is correct
2 Correct 3 ms 860 KB Output is correct
3 Correct 3 ms 856 KB Output is correct
4 Correct 3 ms 860 KB Output is correct
5 Correct 3 ms 860 KB Output is correct
6 Correct 3 ms 864 KB Output is correct
7 Correct 3 ms 868 KB Output is correct
8 Correct 3 ms 856 KB Output is correct
9 Correct 4 ms 984 KB Output is correct
10 Correct 3 ms 860 KB Output is correct
11 Correct 3 ms 860 KB Output is correct
12 Correct 3 ms 860 KB Output is correct
13 Correct 3 ms 860 KB Output is correct
14 Correct 3 ms 856 KB Output is correct
15 Correct 3 ms 856 KB Output is correct
16 Correct 3 ms 860 KB Output is correct
17 Correct 3 ms 860 KB Output is correct
18 Correct 3 ms 812 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3 ms 984 KB Output is correct
2 Correct 3 ms 860 KB Output is correct
3 Correct 3 ms 856 KB Output is correct
4 Correct 3 ms 860 KB Output is correct
5 Correct 3 ms 860 KB Output is correct
6 Correct 3 ms 864 KB Output is correct
7 Correct 3 ms 868 KB Output is correct
8 Correct 3 ms 856 KB Output is correct
9 Correct 4 ms 984 KB Output is correct
10 Correct 3 ms 860 KB Output is correct
11 Correct 3 ms 860 KB Output is correct
12 Correct 3 ms 860 KB Output is correct
13 Correct 3 ms 860 KB Output is correct
14 Correct 3 ms 856 KB Output is correct
15 Correct 3 ms 856 KB Output is correct
16 Correct 3 ms 860 KB Output is correct
17 Correct 3 ms 860 KB Output is correct
18 Correct 3 ms 812 KB Output is correct
19 Correct 3 ms 860 KB Output is correct
20 Correct 3 ms 860 KB Output is correct
21 Correct 4 ms 860 KB Output is correct
22 Correct 3 ms 860 KB Output is correct
23 Correct 3 ms 860 KB Output is correct
24 Correct 3 ms 856 KB Output is correct
25 Correct 3 ms 856 KB Output is correct
26 Correct 2 ms 860 KB Output is correct
27 Correct 3 ms 860 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3 ms 984 KB Output is correct
2 Correct 3 ms 860 KB Output is correct
3 Correct 3 ms 856 KB Output is correct
4 Correct 3 ms 860 KB Output is correct
5 Correct 3 ms 860 KB Output is correct
6 Correct 3 ms 864 KB Output is correct
7 Correct 3 ms 868 KB Output is correct
8 Correct 3 ms 856 KB Output is correct
9 Correct 4 ms 984 KB Output is correct
10 Correct 3 ms 860 KB Output is correct
11 Correct 3 ms 860 KB Output is correct
12 Correct 3 ms 860 KB Output is correct
13 Correct 3 ms 860 KB Output is correct
14 Correct 3 ms 856 KB Output is correct
15 Correct 3 ms 856 KB Output is correct
16 Correct 3 ms 860 KB Output is correct
17 Correct 3 ms 860 KB Output is correct
18 Correct 3 ms 812 KB Output is correct
19 Correct 3 ms 860 KB Output is correct
20 Correct 3 ms 860 KB Output is correct
21 Correct 4 ms 860 KB Output is correct
22 Correct 3 ms 860 KB Output is correct
23 Correct 3 ms 860 KB Output is correct
24 Correct 3 ms 856 KB Output is correct
25 Correct 3 ms 856 KB Output is correct
26 Correct 2 ms 860 KB Output is correct
27 Correct 3 ms 860 KB Output is correct
28 Correct 3 ms 1056 KB Output is correct
29 Correct 3 ms 856 KB Output is correct
30 Correct 3 ms 816 KB Output is correct
31 Correct 3 ms 856 KB Output is correct
32 Correct 3 ms 860 KB Output is correct
33 Correct 3 ms 860 KB Output is correct
34 Correct 3 ms 860 KB Output is correct
35 Correct 3 ms 860 KB Output is correct
36 Correct 3 ms 856 KB Output is correct
37 Correct 3 ms 860 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3 ms 984 KB Output is correct
2 Correct 3 ms 860 KB Output is correct
3 Correct 3 ms 856 KB Output is correct
4 Correct 3 ms 860 KB Output is correct
5 Correct 3 ms 860 KB Output is correct
6 Correct 3 ms 864 KB Output is correct
7 Correct 3 ms 868 KB Output is correct
8 Correct 3 ms 856 KB Output is correct
9 Correct 4 ms 984 KB Output is correct
10 Correct 3 ms 860 KB Output is correct
11 Correct 3 ms 860 KB Output is correct
12 Correct 3 ms 860 KB Output is correct
13 Correct 3 ms 860 KB Output is correct
14 Correct 3 ms 856 KB Output is correct
15 Correct 3 ms 856 KB Output is correct
16 Correct 3 ms 860 KB Output is correct
17 Correct 3 ms 860 KB Output is correct
18 Correct 3 ms 812 KB Output is correct
19 Correct 3 ms 860 KB Output is correct
20 Correct 3 ms 860 KB Output is correct
21 Correct 4 ms 860 KB Output is correct
22 Correct 3 ms 860 KB Output is correct
23 Correct 3 ms 860 KB Output is correct
24 Correct 3 ms 856 KB Output is correct
25 Correct 3 ms 856 KB Output is correct
26 Correct 2 ms 860 KB Output is correct
27 Correct 3 ms 860 KB Output is correct
28 Correct 3 ms 1056 KB Output is correct
29 Correct 3 ms 856 KB Output is correct
30 Correct 3 ms 816 KB Output is correct
31 Correct 3 ms 856 KB Output is correct
32 Correct 3 ms 860 KB Output is correct
33 Correct 3 ms 860 KB Output is correct
34 Correct 3 ms 860 KB Output is correct
35 Correct 3 ms 860 KB Output is correct
36 Correct 3 ms 856 KB Output is correct
37 Correct 3 ms 860 KB Output is correct
38 Correct 4 ms 1076 KB Output is correct
39 Correct 3 ms 860 KB Output is correct
40 Correct 3 ms 860 KB Output is correct
41 Correct 3 ms 860 KB Output is correct
42 Correct 4 ms 860 KB Output is correct
43 Correct 5 ms 1080 KB Output is correct
44 Correct 4 ms 944 KB Output is correct
45 Correct 4 ms 1080 KB Output is correct
46 Correct 4 ms 1080 KB Output is correct
47 Correct 4 ms 1080 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3 ms 860 KB Output is correct
2 Correct 3 ms 860 KB Output is correct
3 Correct 3 ms 860 KB Output is correct
4 Correct 3 ms 860 KB Output is correct
5 Correct 4 ms 860 KB Output is correct
6 Correct 3 ms 860 KB Output is correct
7 Correct 3 ms 860 KB Output is correct
8 Correct 3 ms 860 KB Output is correct
9 Correct 3 ms 860 KB Output is correct
10 Correct 3 ms 860 KB Output is correct
11 Correct 3 ms 812 KB Output is correct
12 Correct 4 ms 860 KB Output is correct
13 Correct 3 ms 860 KB Output is correct
14 Correct 3 ms 860 KB Output is correct
15 Correct 3 ms 860 KB Output is correct
16 Correct 3 ms 860 KB Output is correct
17 Correct 3 ms 856 KB Output is correct
18 Correct 3 ms 860 KB Output is correct
19 Correct 3 ms 860 KB Output is correct
20 Correct 3 ms 860 KB Output is correct
21 Correct 3 ms 860 KB Output is correct
22 Correct 3 ms 856 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3 ms 860 KB Output is correct
2 Correct 3 ms 860 KB Output is correct
3 Correct 3 ms 804 KB Output is correct
4 Correct 3 ms 860 KB Output is correct
5 Correct 3 ms 860 KB Output is correct
6 Correct 3 ms 984 KB Output is correct
7 Correct 3 ms 856 KB Output is correct
8 Correct 5 ms 1080 KB Output is correct
9 Correct 4 ms 856 KB Output is correct
10 Correct 4 ms 860 KB Output is correct
11 Correct 4 ms 856 KB Output is correct
12 Correct 5 ms 860 KB Output is correct
13 Correct 3 ms 860 KB Output is correct
14 Correct 3 ms 856 KB Output is correct
15 Correct 3 ms 860 KB Output is correct
16 Correct 3 ms 856 KB Output is correct
17 Correct 3 ms 856 KB Output is correct
18 Correct 3 ms 856 KB Output is correct
19 Correct 3 ms 856 KB Output is correct
20 Correct 7 ms 1240 KB Output is correct
21 Correct 6 ms 1148 KB Output is correct
22 Correct 7 ms 1240 KB Output is correct
23 Correct 6 ms 1240 KB Output is correct
24 Correct 6 ms 1240 KB Output is correct
25 Correct 6 ms 1240 KB Output is correct
26 Correct 6 ms 1240 KB Output is correct
27 Correct 9 ms 1636 KB Output is correct
28 Correct 9 ms 1596 KB Output is correct
29 Correct 10 ms 1596 KB Output is correct
30 Correct 10 ms 1592 KB Output is correct
31 Correct 9 ms 1680 KB Output is correct
32 Correct 3 ms 860 KB Output is correct
33 Correct 3 ms 860 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 9 ms 1596 KB Output is correct
2 Correct 3 ms 860 KB Output is correct
3 Correct 3 ms 860 KB Output is correct
4 Correct 5 ms 856 KB Output is correct
5 Correct 3 ms 860 KB Output is correct
6 Correct 3 ms 856 KB Output is correct
7 Correct 6 ms 1180 KB Output is correct
8 Correct 6 ms 1240 KB Output is correct
9 Correct 9 ms 1596 KB Output is correct
10 Correct 3 ms 860 KB Output is correct
11 Correct 3 ms 860 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3 ms 984 KB Output is correct
2 Correct 3 ms 860 KB Output is correct
3 Correct 3 ms 856 KB Output is correct
4 Correct 3 ms 860 KB Output is correct
5 Correct 3 ms 860 KB Output is correct
6 Correct 3 ms 864 KB Output is correct
7 Correct 3 ms 868 KB Output is correct
8 Correct 3 ms 856 KB Output is correct
9 Correct 4 ms 984 KB Output is correct
10 Correct 3 ms 860 KB Output is correct
11 Correct 3 ms 860 KB Output is correct
12 Correct 3 ms 860 KB Output is correct
13 Correct 3 ms 860 KB Output is correct
14 Correct 3 ms 856 KB Output is correct
15 Correct 3 ms 856 KB Output is correct
16 Correct 3 ms 860 KB Output is correct
17 Correct 3 ms 860 KB Output is correct
18 Correct 3 ms 812 KB Output is correct
19 Correct 3 ms 860 KB Output is correct
20 Correct 3 ms 860 KB Output is correct
21 Correct 4 ms 860 KB Output is correct
22 Correct 3 ms 860 KB Output is correct
23 Correct 3 ms 860 KB Output is correct
24 Correct 3 ms 856 KB Output is correct
25 Correct 3 ms 856 KB Output is correct
26 Correct 2 ms 860 KB Output is correct
27 Correct 3 ms 860 KB Output is correct
28 Correct 3 ms 1056 KB Output is correct
29 Correct 3 ms 856 KB Output is correct
30 Correct 3 ms 816 KB Output is correct
31 Correct 3 ms 856 KB Output is correct
32 Correct 3 ms 860 KB Output is correct
33 Correct 3 ms 860 KB Output is correct
34 Correct 3 ms 860 KB Output is correct
35 Correct 3 ms 860 KB Output is correct
36 Correct 3 ms 856 KB Output is correct
37 Correct 3 ms 860 KB Output is correct
38 Correct 4 ms 1076 KB Output is correct
39 Correct 3 ms 860 KB Output is correct
40 Correct 3 ms 860 KB Output is correct
41 Correct 3 ms 860 KB Output is correct
42 Correct 4 ms 860 KB Output is correct
43 Correct 5 ms 1080 KB Output is correct
44 Correct 4 ms 944 KB Output is correct
45 Correct 4 ms 1080 KB Output is correct
46 Correct 4 ms 1080 KB Output is correct
47 Correct 4 ms 1080 KB Output is correct
48 Correct 3 ms 860 KB Output is correct
49 Correct 3 ms 860 KB Output is correct
50 Correct 3 ms 860 KB Output is correct
51 Correct 3 ms 860 KB Output is correct
52 Correct 4 ms 860 KB Output is correct
53 Correct 3 ms 860 KB Output is correct
54 Correct 3 ms 860 KB Output is correct
55 Correct 3 ms 860 KB Output is correct
56 Correct 3 ms 860 KB Output is correct
57 Correct 3 ms 860 KB Output is correct
58 Correct 3 ms 812 KB Output is correct
59 Correct 4 ms 860 KB Output is correct
60 Correct 3 ms 860 KB Output is correct
61 Correct 3 ms 860 KB Output is correct
62 Correct 3 ms 860 KB Output is correct
63 Correct 3 ms 860 KB Output is correct
64 Correct 3 ms 856 KB Output is correct
65 Correct 3 ms 860 KB Output is correct
66 Correct 3 ms 860 KB Output is correct
67 Correct 3 ms 860 KB Output is correct
68 Correct 3 ms 860 KB Output is correct
69 Correct 3 ms 856 KB Output is correct
70 Correct 3 ms 860 KB Output is correct
71 Correct 3 ms 860 KB Output is correct
72 Correct 3 ms 804 KB Output is correct
73 Correct 3 ms 860 KB Output is correct
74 Correct 3 ms 860 KB Output is correct
75 Correct 3 ms 984 KB Output is correct
76 Correct 3 ms 856 KB Output is correct
77 Correct 5 ms 1080 KB Output is correct
78 Correct 4 ms 856 KB Output is correct
79 Correct 4 ms 860 KB Output is correct
80 Correct 4 ms 856 KB Output is correct
81 Correct 5 ms 860 KB Output is correct
82 Correct 3 ms 860 KB Output is correct
83 Correct 3 ms 856 KB Output is correct
84 Correct 3 ms 860 KB Output is correct
85 Correct 3 ms 856 KB Output is correct
86 Correct 3 ms 856 KB Output is correct
87 Correct 3 ms 856 KB Output is correct
88 Correct 3 ms 856 KB Output is correct
89 Correct 7 ms 1240 KB Output is correct
90 Correct 6 ms 1148 KB Output is correct
91 Correct 7 ms 1240 KB Output is correct
92 Correct 6 ms 1240 KB Output is correct
93 Correct 6 ms 1240 KB Output is correct
94 Correct 6 ms 1240 KB Output is correct
95 Correct 6 ms 1240 KB Output is correct
96 Correct 9 ms 1636 KB Output is correct
97 Correct 9 ms 1596 KB Output is correct
98 Correct 10 ms 1596 KB Output is correct
99 Correct 10 ms 1592 KB Output is correct
100 Correct 9 ms 1680 KB Output is correct
101 Correct 3 ms 860 KB Output is correct
102 Correct 3 ms 860 KB Output is correct
103 Correct 9 ms 1596 KB Output is correct
104 Correct 3 ms 860 KB Output is correct
105 Correct 3 ms 860 KB Output is correct
106 Correct 5 ms 856 KB Output is correct
107 Correct 3 ms 860 KB Output is correct
108 Correct 3 ms 856 KB Output is correct
109 Correct 6 ms 1180 KB Output is correct
110 Correct 6 ms 1240 KB Output is correct
111 Correct 9 ms 1596 KB Output is correct
112 Correct 3 ms 860 KB Output is correct
113 Correct 3 ms 860 KB Output is correct
114 Correct 11 ms 1596 KB Output is correct
115 Correct 3 ms 856 KB Output is correct
116 Correct 3 ms 860 KB Output is correct
117 Correct 6 ms 1240 KB Output is correct
118 Correct 6 ms 1236 KB Output is correct
119 Correct 12 ms 1528 KB Output is correct
120 Correct 9 ms 1628 KB Output is correct
121 Correct 9 ms 1624 KB Output is correct
122 Correct 10 ms 1628 KB Output is correct
123 Correct 9 ms 1596 KB Output is correct
124 Correct 9 ms 1592 KB Output is correct
125 Correct 9 ms 1596 KB Output is correct
126 Correct 9 ms 1680 KB Output is correct
127 Correct 9 ms 1596 KB Output is correct
128 Correct 11 ms 1596 KB Output is correct