Submission #1302453

#TimeUsernameProblemLanguageResultExecution timeMemory
1302453regulardude6선물 (IOI25_souvenirs)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> #include "souvenirs.h" using namespace std; static int n; static long long p0; static vector<long long> pr; static vector<long long> cnt; static pair<vector<int>, long long> tr(long long M){ auto res = transaction(M); for(int x: res.first) cnt[x]++; return res; } static void solve_idx(int i, long long M){ if(i<=0 || i>=n) return; if(pr[i] != -1) return; auto res = tr(M); auto ids = res.first; long long S = M - res.second; if(ids.empty()) return; if(ids[0] != i) i = ids[0]; vector<int> L = ids; long long sum = S; while(L.size() > 1){ long long avg = sum / (long long)L.size(); auto res2 = tr(avg); int j = res2.first.empty() ? -1 : res2.first[0]; int pos = -1; if(j != -1){ for(int k=0;k<(int)L.size();k++) if(L[k]==j){ pos=k; break; } } if(pos == -1){ for(int x: res2.first){ for(int k=0;k<(int)L.size();k++){ if(L[k]==x){ pos=k; j=x; break; } } if(pos!=-1) break; } } if(pos == -1) break; solve_idx(j, avg); long long suf = 0; for(int k=pos;k<(int)L.size();k++){ int idx = L[k]; suf += pr[idx]; } sum -= suf; L.resize(pos); } if(!L.empty()) pr[L[0]] = sum; } vector<long long> buy_souvenirs(int N, long long P0){ n = N; p0 = P0; pr.assign(n, -1); cnt.assign(n, 0); pr[0] = p0; solve_idx(1, p0 - 1); for(int i=2;i<n;i++){ if(pr[i] == -1) solve_idx(i, pr[i-1] - 1); } for(int i=1;i<n;i++){ while(cnt[i] < i) tr(pr[i]); } vector<long long> Q(n, 0); for(int i=0;i<n;i++) Q[i] = cnt[i]; return Q; }

Compilation message (stderr)

souvenirs.cpp:63:19: error: ambiguating new declaration of 'std::vector<long long int> buy_souvenirs(int, long long int)'
   63 | vector<long long> buy_souvenirs(int N, long long P0){
      |                   ^~~~~~~~~~~~~
In file included from souvenirs.cpp:2:
souvenirs.h:4:6: note: old declaration 'void buy_souvenirs(int, long long int)'
    4 | void buy_souvenirs(int N, long long P0);
      |      ^~~~~~~~~~~~~