Submission #1254284

#TimeUsernameProblemLanguageResultExecution timeMemory
1254284vpinxSouvenirs (IOI25_souvenirs)C++20
22 / 100
2 ms412 KiB
#include "souvenirs.h" #include <bits/stdc++.h> using namespace std; extern pair<vector<int>, long long> transaction(long long m); void buy_souvenirs(int n, long long p0) { if (n == 2) auto [l, r] = transaction(p0 - 1); else if (n == 3) { auto [l, r] = transaction(p0 - 1); if (l.size() == 1) { for (int i = 0; i < 2; i++) auto [l2, r2] = transaction(p0 - r - 2); }else { long long sum = p0 - r - 1; auto [l2, r2] = transaction(sum / 2 - ((sum & 1) ^ 1)); } }else { vector<long long> p(n, -1LL), q(n, 0LL); p[0] = p0; for (int i = 1; i < n; i++) { auto [l, r] = transaction(p[i - 1] - 1); for (int j = 0; j < l.size(); j++) q[l[j]]++; if (l.size() == 1) { if (r == 1) p[i] = p[i - 1] - 1; else p[i] = p[i - 1] - 2; }else p[i] = p[i - 1] - 2; } for (int i = 1; i < n; i++) { while (q[i] < i) { auto [l, r] = transaction(p[i]); q[i]++; } } } }
#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...