Submission #1319383

#TimeUsernameProblemLanguageResultExecution timeMemory
1319383Trisanu_DasSouvenirs (IOI25_souvenirs)C++20
4 / 100
0 ms332 KiB
#include <bits/stdc++.h> using namespace std; pair<vector<int>, long long> transaction(long long M); void buy_souvenirs(int N, long long P0) { vector<long long> P(N, -1); vector<long long> got(N, 0); P[0] = P0; long long sum_known = 0; for (int i = N - 1; i >= 1; --i) { long long M = P0 - 1 - sum_known; if (M < 0) M = 0; auto res = transaction(M); auto &L = res.first; long long R = res.second; long long paid = M - R; vector<bool> seen(N, false); for (int t : L) { got[t]++; seen[t] = true; } long long subtract = 0; for (int j = i + 1; j < N; ++j) if (seen[j]) subtract += P[j]; long long Pi = paid - subtract; P[i] = Pi; sum_known += Pi; } for (int i = 1; i < N; ++i) { long long need = i - got[i]; while (need > 0) { transaction(P[i]); --need; } } }
#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...