Submission #1252287

#TimeUsernameProblemLanguageResultExecution timeMemory
1252287tranvinhhuy2010Souvenirs (IOI25_souvenirs)C++20
0 / 100
0 ms412 KiB
#include "souvenirs.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; int n, last, cnt[105] = {}; ll p[105] = {}; ll adu_calculate(ll s, int k) { s += k*(k-1)/2 + k - 1; return s/k; } int adu_build(ll money) { auto [v, remain] = transaction(money); ll sum = money - remain; for (int i : v) cnt[i]++; while (v[0]<last) { while (v.back()>=last) { sum -= p[v.back()]; v.pop_back(); } if (v[0]+1==last) break; adu_build(adu_calculate(sum, v.size()) - 1); } p[v[0]] = sum; last = v[0]; } void adu_complete() { for (int i=1; i<n; i++) { while (cnt[i]<i) { transaction(p[i]); cnt[i]++; } } } void buy_souvenirs(int N, ll P0) { n = last = N; p[0] = P0; adu_build(P0-1); adu_complete(); }

Compilation message (stderr)

souvenirs.cpp: In function 'int adu_build(ll)':
souvenirs.cpp:35:1: warning: no return statement in function returning non-void [-Wreturn-type]
   35 | }
      | ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...