Submission #412767

#TimeUsernameProblemLanguageResultExecution timeMemory
412767timmyfengVision Program (IOI19_vision)C++17
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; #include "vision.h" const int L = 9; vector<int> dist(vector<int> cells) { int n = cells.size(); vector<int> split(n - 1); for (int i = 0; i < n - 1; ++i) { vector<int> l, r; for (int j = 0; j < n; ++j) { (j <= i ? l : r).push_back(j); } split[i] = add_and({add_or(l), add_or(r)}); } vector<int> l(L); for (int i = 0; i < L; ++i) { vector<int> ones, bools; for (int j = 0; j < n - 1; ++j) { if ((j & (1 << i)) > 0) { ones.push_back(j); } if (!ones.empty()) { bools.push_back(add_and({add_or(ones), split[j]})); } } l[i] = add_or(bools); } vector<int> r(L); for (int i = 0; i < L; ++i) { vector<int> ones, bools; for (int j = n - 1; j > 0; --j) { if ((j & (1 << i)) > 0) { ones.push_back(j); } if (!ones.empty()) { bools.push_back(add_and({add_or(ones), split[j - 1]})); } } r[i] = add_or(bools); } vector<int> diff(L); diff[0] = add_xor(l[0], r[0]); int carry = add_and(l[0], r[0]); for (int i = 1; i < L; ++i) { diff[i] = add_xor({l[i], r[i], carry}); carry = add_or({add_and({l[i], r[i], carry}), add_and({add_not(r[i]), add_or({l[i], carry})})}); } return diff; } void construct_network(int h, int w, int k) { vector<int> rows(h); for (int i = 0; i < h; ++i) { vector<int> row; for (int j = 0; j < w; ++j) { row.push_back(i * w + j); } rows[i] = add_and(row); } vector<int> cols(w); for (int i = 0; i < w; ++i) { vector<int> col; for (int j = 0; j < h; ++j) { col.push_back(j * w + i); } cols[i] = add_and(col); } vector<int> r = dist(rows), c = dist(cols), sum; int carry = add_and(r[0], c[0]); sum[0] = add_xor({r[0], c[0]}); for (int i = 1; i < L; ++i) { sum[i] = add_xor({r[i], c[i], carry}); carry = add_or({add_and({r[i], c[i]}), add_and({r[i], carry}), add_and({c[i], carry})}); } for (int i = 0; i < L; ++i) { if ((k & (1 << i)) == 0) { sum[i] = add_not(sum[i]); } } add_and(sum); }

Compilation message (stderr)

vision.cpp: In function 'std::vector<int> dist(std::vector<int>)':
vision.cpp:49:33: error: could not convert 'l.std::vector<int>::operator[](0)' from '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'} to 'std::vector<int>'
   49 |     diff[0] = add_xor(l[0], r[0]);
      |                                 ^
      |                                 |
      |                                 __gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type {aka int}
vision.cpp:50:35: error: could not convert 'l.std::vector<int>::operator[](0)' from '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'} to 'std::vector<int>'
   50 |     int carry = add_and(l[0], r[0]);
      |                                   ^
      |                                   |
      |                                   __gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type {aka int}
vision.cpp: In function 'void construct_network(int, int, int)':
vision.cpp:81:35: error: could not convert 'r.std::vector<int>::operator[](0)' from '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'} to 'std::vector<int>'
   81 |     int carry = add_and(r[0], c[0]);
      |                                   ^
      |                                   |
      |                                   __gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type {aka int}