Submission #1249395

#TimeUsernameProblemLanguageResultExecution timeMemory
1249395mondellbitSouvenirs (IOI25_souvenirs)C++20
Compilation error
0 ms0 KiB
#include "souvenirs.h" #include <utility> #include <vector> #include <bits/stdc++.h> int n; const int N = 105; int hidden_p[N]; int counter[N]; pair <vector <int>, int> transaction(int m){ assert(m >= hidden_p[n - 1] && m < hidden_p[0]); vector <int> bought; for (int i = 0; i < n; i++){ if (m >= hidden_p[i]){ m -= hidden_p[i]; bought.push_back(i); counter[i]++; } } return make_pair(bought, m); } void buy_souvenirs(int n, int p0){ vector<set<int>> depend(n); vector<int> sum(n); vector<int> ans(n, -1); ans[0] = p0; vector <int> counter(n, 0); while (true){ int left = 0; for (int i = 0; i < n; i++){ left += ans[i] == -1; } if (left == 0){ break; } bool have = false; for (int i = n - 1; i >= 0; i--){ if (ans[i] == -1) have = true; if (ans[i] != -1 && have){ auto [vv, ll] = transaction(ans[i] - 1); set <int> ss; for (auto x : vv) ss.insert(x), counter[x]++; int got = ans[i] - 1 - ll; for (int j = 0; j < n; j++){ if (ans[j] != -1 && ss.count(j)){ ss.erase(j); got -= ans[j]; } } depend[i + 1] = ss; sum[i + 1] = got; break; } if (depend[i].size() == 1){ ans[i] = sum[i]; depend[i].clear(); for (int j = 0; j < n; j++){ if (depend[j].count(i)){ sum[j] -= ans[i]; depend[j].erase(i); } } break; } if (depend[i].size()){ int x = sum[i] / (int)depend[i].size(); auto [vv, ll] = transaction(x); set <int> ss; for (auto x : vv) ss.insert(x), counter[x]++; int got = x - ll; for (int j = 0; j < n; j++){ if (ans[j] != -1 && ss.count(j)){ got -= ans[j]; ss.erase(j); } } assert(!ss.empty()); int k = *ss.begin(); depend[k] = ss; sum[k] = got; break; } } } for (int i = 0; i < n; i++){ while (counter[i] < i){ counter[i]++; transaction(ans[i]); } } }

Compilation message (stderr)

souvenirs.cpp:10:7: error: 'vector' was not declared in this scope
   10 | pair <vector <int>, int> transaction(int m){
      |       ^~~~~~
souvenirs.cpp:10:7: note: suggested alternatives:
In file included from /usr/include/c++/11/vector:67,
                 from souvenirs.h:2,
                 from souvenirs.cpp:1:
/usr/include/c++/11/bits/stl_vector.h:389:11: note:   'std::vector'
  389 |     class vector : protected _Vector_base<_Tp, _Alloc>
      |           ^~~~~~
In file included from souvenirs.h:2,
                 from souvenirs.cpp:1:
/usr/include/c++/11/vector:86:13: note:   'std::pmr::vector'
   86 |       using vector = std::vector<_Tp, polymorphic_allocator<_Tp>>;
      |             ^~~~~~
souvenirs.cpp:10:7: error: 'vector' was not declared in this scope
   10 | pair <vector <int>, int> transaction(int m){
      |       ^~~~~~
souvenirs.cpp:10:7: note: suggested alternatives:
In file included from /usr/include/c++/11/vector:67,
                 from souvenirs.h:2,
                 from souvenirs.cpp:1:
/usr/include/c++/11/bits/stl_vector.h:389:11: note:   'std::vector'
  389 |     class vector : protected _Vector_base<_Tp, _Alloc>
      |           ^~~~~~
In file included from souvenirs.h:2,
                 from souvenirs.cpp:1:
/usr/include/c++/11/vector:86:13: note:   'std::pmr::vector'
   86 |       using vector = std::vector<_Tp, polymorphic_allocator<_Tp>>;
      |             ^~~~~~
souvenirs.cpp:10:7: error: 'vector' was not declared in this scope
   10 | pair <vector <int>, int> transaction(int m){
      |       ^~~~~~
souvenirs.cpp:10:7: note: suggested alternatives:
In file included from /usr/include/c++/11/vector:67,
                 from souvenirs.h:2,
                 from souvenirs.cpp:1:
/usr/include/c++/11/bits/stl_vector.h:389:11: note:   'std::vector'
  389 |     class vector : protected _Vector_base<_Tp, _Alloc>
      |           ^~~~~~
In file included from souvenirs.h:2,
                 from souvenirs.cpp:1:
/usr/include/c++/11/vector:86:13: note:   'std::pmr::vector'
   86 |       using vector = std::vector<_Tp, polymorphic_allocator<_Tp>>;
      |             ^~~~~~
souvenirs.cpp:10:7: error: 'vector' was not declared in this scope
   10 | pair <vector <int>, int> transaction(int m){
      |       ^~~~~~
souvenirs.cpp:10:7: note: suggested alternatives:
In file included from /usr/include/c++/11/vector:67,
                 from souvenirs.h:2,
                 from souvenirs.cpp:1:
/usr/include/c++/11/bits/stl_vector.h:389:11: note:   'std::vector'
  389 |     class vector : protected _Vector_base<_Tp, _Alloc>
      |           ^~~~~~
In file included from souvenirs.h:2,
                 from souvenirs.cpp:1:
/usr/include/c++/11/vector:86:13: note:   'std::pmr::vector'
   86 |       using vector = std::vector<_Tp, polymorphic_allocator<_Tp>>;
      |             ^~~~~~
souvenirs.cpp:10:7: error: 'vector' was not declared in this scope
   10 | pair <vector <int>, int> transaction(int m){
      |       ^~~~~~
souvenirs.cpp:10:7: note: suggested alternatives:
In file included from /usr/include/c++/11/vector:67,
                 from souvenirs.h:2,
                 from souvenirs.cpp:1:
/usr/include/c++/11/bits/stl_vector.h:389:11: note:   'std::vector'
  389 |     class vector : protected _Vector_base<_Tp, _Alloc>
      |           ^~~~~~
In file included from souvenirs.h:2,
                 from souvenirs.cpp:1:
/usr/include/c++/11/vector:86:13: note:   'std::pmr::vector'
   86 |       using vector = std::vector<_Tp, polymorphic_allocator<_Tp>>;
      |             ^~~~~~
souvenirs.cpp:10:7: error: 'vector' was not declared in this scope
   10 | pair <vector <int>, int> transaction(int m){
      |       ^~~~~~
souvenirs.cpp:10:7: note: suggested alternatives:
In file included from /usr/include/c++/11/vector:67,
                 from souvenirs.h:2,
                 from souvenirs.cpp:1:
/usr/include/c++/11/bits/stl_vector.h:389:11: note:   'std::vector'
  389 |     class vector : protected _Vector_base<_Tp, _Alloc>
      |           ^~~~~~
In file included from souvenirs.h:2,
                 from souvenirs.cpp:1:
/usr/include/c++/11/vector:86:13: note:   'std::pmr::vector'
   86 |       using vector = std::vector<_Tp, polymorphic_allocator<_Tp>>;
      |             ^~~~~~
souvenirs.cpp:10:7: error: 'vector' was not declared in this scope
   10 | pair <vector <int>, int> transaction(int m){
      |       ^~~~~~
souvenirs.cpp:10:7: note: suggested alternatives:
In file included from /usr/include/c++/11/vector:67,
                 from souvenirs.h:2,
                 from souvenirs.cpp:1:
/usr/include/c++/11/bits/stl_vector.h:389:11: note:   'std::vector'
  389 |     class vector : protected _Vector_base<_Tp, _Alloc>
      |           ^~~~~~
In file included from souvenirs.h:2,
                 from souvenirs.cpp:1:
/usr/include/c++/11/vector:86:13: note:   'std::pmr::vector'
   86 |       using vector = std::vector<_Tp, polymorphic_allocator<_Tp>>;
      |             ^~~~~~
souvenirs.cpp:10:7: error: 'vector' was not declared in this scope
   10 | pair <vector <int>, int> transaction(int m){
      |       ^~~~~~
souvenirs.cpp:10:7: note: suggested alternatives:
In file included from /usr/include/c++/11/vector:67,
                 from souvenirs.h:2,
                 from souvenirs.cpp:1:
/usr/include/c++/11/bits/stl_vector.h:389:11: note:   'std::vector'
  389 |     class vector : protected _Vector_base<_Tp, _Alloc>
      |           ^~~~~~
In file included from souvenirs.h:2,
                 from souvenirs.cpp:1:
/usr/include/c++/11/vector:86:13: note:   'std::pmr::vector'
   86 |       using vector = std::vector<_Tp, polymorphic_allocator<_Tp>>;
      |             ^~~~~~
souvenirs.cpp:10:7: error: 'vector' was not declared in this scope
   10 | pair <vector <int>, int> transaction(int m){
      |       ^~~~~~
souvenirs.cpp:10:7: note: suggested alternatives:
In file included from /usr/include/c++/11/vector:67,
                 from souvenirs.h:2,
                 from souvenirs.cpp:1:
/usr/include/c++/11/bits/stl_vector.h:389:11: note:   'std::vector'
  389 |     class vector : protected _Vector_base<_Tp, _Alloc>
      |           ^~~~~~
In file included from souvenirs.h:2,
                 from souvenirs.cpp:1:
/usr/include/c++/11/vector:86:13: note:   'std::pmr::vector'
   86 |       using vector = std::vector<_Tp, polymorphic_allocator<_Tp>>;
      |             ^~~~~~
souvenirs.cpp:10:1: error: 'pair' does not name a type
   10 | pair <vector <int>, int> transaction(int m){
      | ^~~~
souvenirs.cpp: In function 'void buy_souvenirs(int, int)':
souvenirs.cpp:26:12: error: 'set' was not declared in this scope
   26 |     vector<set<int>> depend(n);
      |            ^~~
souvenirs.cpp:26:12: note: suggested alternatives:
In file included from /usr/include/c++/11/set:61,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:87,
                 from souvenirs.cpp:4:
/usr/include/c++/11/bits/stl_set.h:94:11: note:   'std::set'
   94 |     class set
      |           ^~~
In file included from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:87,
                 from souvenirs.cpp:4:
/usr/include/c++/11/set:78:13: note:   'std::pmr::set'
   78 |       using set = std::set<_Key, _Cmp, polymorphic_allocator<_Key>>;
      |             ^~~
souvenirs.cpp:26:5: error: 'vector' was not declared in this scope
   26 |     vector<set<int>> depend(n);
      |     ^~~~~~
souvenirs.cpp:26:5: note: suggested alternatives:
In file included from /usr/include/c++/11/vector:67,
                 from souvenirs.h:2,
                 from souvenirs.cpp:1:
/usr/include/c++/11/bits/stl_vector.h:389:11: note:   'std::vector'
  389 |     class vector : protected _Vector_base<_Tp, _Alloc>
      |           ^~~~~~
In file included from souvenirs.h:2,
                 from souvenirs.cpp:1:
/usr/include/c++/11/vector:86:13: note:   'std::pmr::vector'
   86 |       using vector = std::vector<_Tp, polymorphic_allocator<_Tp>>;
      |             ^~~~~~
souvenirs.cpp:26:16: error: expected primary-expression before 'int'
   26 |     vector<set<int>> depend(n);
      |                ^~~
souvenirs.cpp:27:12: error: expected primary-expression before 'int'
   27 |     vector<int> sum(n);
      |            ^~~
souvenirs.cpp:28:12: error: expected primary-expression before 'int'
   28 |     vector<int> ans(n, -1);
      |            ^~~
souvenirs.cpp:29:5: error: 'ans' was not declared in this scope; did you mean 'abs'?
   29 |     ans[0] = p0;
      |     ^~~
      |     abs
souvenirs.cpp:31:13: error: expected primary-expression before 'int'
   31 |     vector <int> counter(n, 0);
      |             ^~~
souvenirs.cpp:49:22: error: expected primary-expression before 'int'
   49 |                 set <int> ss;
      |                      ^~~
souvenirs.cpp:50:35: error: 'ss' was not declared in this scope
   50 |                 for (auto x : vv) ss.insert(x), counter[x]++;
      |                                   ^~
souvenirs.cpp:54:41: error: 'ss' was not declared in this scope
   54 |                     if (ans[j] != -1 && ss.count(j)){
      |                                         ^~
souvenirs.cpp:60:17: error: 'depend' was not declared in this scope
   60 |                 depend[i + 1] = ss;
      |                 ^~~~~~
souvenirs.cpp:60:33: error: 'ss' was not declared in this scope
   60 |                 depend[i + 1] = ss;
      |                                 ^~
souvenirs.cpp:61:17: error: 'sum' was not declared in this scope
   61 |                 sum[i + 1] = got;
      |                 ^~~
souvenirs.cpp:64:17: error: 'depend' was not declared in this scope
   64 |             if (depend[i].size() == 1){
      |                 ^~~~~~
souvenirs.cpp:65:26: error: 'sum' was not declared in this scope
   65 |                 ans[i] = sum[i];
      |                          ^~~
souvenirs.cpp:76:17: error: 'depend' was not declared in this scope
   76 |             if (depend[i].size()){
      |                 ^~~~~~
souvenirs.cpp:77:25: error: 'sum' was not declared in this scope
   77 |                 int x = sum[i] / (int)depend[i].size();
      |                         ^~~
souvenirs.cpp:79:22: error: expected primary-expression before 'int'
   79 |                 set <int> ss;
      |                      ^~~
souvenirs.cpp:80:35: error: 'ss' was not declared in this scope
   80 |                 for (auto x : vv) ss.insert(x), counter[x]++;
      |                                   ^~
souvenirs.cpp:85:41: error: 'ss' was not declared in this scope
   85 |                     if (ans[j] != -1 && ss.count(j)){
      |                                         ^~
In file included from /usr/include/c++/11/cassert:44,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:33,
                 from souvenirs.cpp:4:
souvenirs.cpp:91:25: error: 'ss' was not declared in this scope
   91 |                 assert(!ss.empty());
      |                         ^~