Submission #1253035

#TimeUsernameProblemLanguageResultExecution timeMemory
1253035TheScrasseSouvenirs (IOI25_souvenirs)C++20
21 / 100
12 ms412 KiB
#include <bits/stdc++.h> using namespace std; #define nl "\n" #define nf endl #define ll long long #define pb push_back #define _ << ' ' << #define INF (ll)1e18 #define mod 998244353 #define maxn 110 #include "souvenirs.h" #include <utility> #include <vector> void buy_souvenirs(int N, long long P0) { // subtask 4 vector<ll> P(N, 0), rem(N, 0); iota(rem.begin(), rem.end(), 0); P[0] = P0; auto trans = [&](ll M) { auto [v, rem_money] = transaction(M); /* cerr << "trans" _ M << nf; for (auto u : v) cerr << u << ' '; cerr << nf; */ for (auto u : v) rem[u]--; return pair<vector<int>, ll>{v, rem_money}; }; for (ll i = 1; i < N; i++) { auto [v, rem_money] = trans(P[i - 1] - 1); if (v.size() == 1 && rem_money == 0) P[i] = P[i - 1] - 1; else P[i] = P[i - 1] - 2; // cout << "i, P[i] =" _ i _ P[i] << nf; } for (ll i = 1; i < N; i++) { while (rem[i] != 0) { trans(P[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...