제출 #1257279

#제출 시각아이디문제언어결과실행 시간메모리
1257279stapanulocu1Souvenirs (IOI25_souvenirs)C++20
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; const int N = 100; /* 4 3 1 pair<vector<int>, long long> transaction(long long M) { vector<int> a; if (M == 7) { return pair<vector<int>, long long>({1, 4}, 0); } if (M == 6) { return pair<vector<int>, long long>({1}, 0); } if (M == 5) { return pair<vector<int>, long long>({2, 4}, 0); } if (M == 4) { return pair<vector<int>, long long>({2}, 0); } if (M == 3) { return pair<vector<int>, long long>({3, 4}, 0); } if (M == 2) { return pair<vector<int>, long long>({3}, 0); } if (M == 1) { return pair<vector<int>, long long>({4}, 0); } if (M == 0) { cerr << "ERROR M 0\n"; } } */ int n; struct el { vector<int> s; long long b, r; }; vector<el> q; long long value[N]; int number[N]; void update_data(el &r); void check_to_remove(el r) { if (r.s.size() == 1) { value[r.s[0]] = r.b - r.r; for (int i = 0; i < (int)q.size(); ++i) update_data(q[i]); } } void update_data(el &r) { for (int i = 0; i < (int)r.s.size(); ++i) { if (value[r.s[i]]) { r.b -= value[r.s[i]]; r.s.erase(r.s.begin() + i); --i; } } check_to_remove(r); } void do_q(long long a) { pair<vector<int>, long long> result = transaction(a); el b; b.s = result.first; b.b = a; b.r = result.second; for (int i = 0; i < (int)b.s.size(); ++i) { number[b.s[i]]++; } update_data(b); q.push_back(b); } void figure_smallest(el va) { if (va.s.size() == 1) { check_to_remove(va); return; } long long avg = (va.b - va.r) / (long long)va.s.size(); do_q(avg); figure_smallest(q.back()); } void finish_all() { for (int i = 0; i < n; ++i) { while (number[i] < i) { do_q(value[i]); } } } void buy_souvenirs(int nu, long long P0) { n = nu; value[0] = P0; for (int i = 1; i < n; ++i) { if (value[i] == 0) do_q(value[i - 1] - 1); } figure_smallest(q.front()); for (int i = 0; i < (int)q.size(); ++i) { check_to_remove(q[i]); if (q[i].s.size() != 0) { figure_smallest(q[i]); } } finish_all(); } /* int main() { buy_souvenirs(3, 5); return 0; }*/

컴파일 시 표준 에러 (stderr) 메시지

souvenirs.cpp: In function 'void do_q(long long int)':
souvenirs.cpp:90:43: error: 'transaction' was not declared in this scope
   90 |     pair<vector<int>, long long> result = transaction(a);
      |                                           ^~~~~~~~~~~