# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1278419 | dang_minh_duc | Souvenirs (IOI25_souvenirs) | C++20 | 0 ms | 0 KiB |
#include <bits/stdc++.h>
#include "souvenirs.h"
#define int long long
using namespace std;
void buy_souvenirs(int n, int P0) {
vector<int>cnt(n, 0), p(n, 0);
for (int i=1;i<n;i++) cnt[i]=i;
p[0]=P0;
for (int i=0;i<n-1;i++) {
auto [l, u]=transaction(p[i]-1);
if (l.size()==1) {
p[i+1]=p[i]-1-u;
}
else p[i+1]=p[i]-2;
for (int x:l) cnt[x]--;
}
for (int i=1;i<n;i++) {
for (int j=1;j<=cnt[i];j++) transaction(p[i]);
}
}