제출 #1320367

#제출 시각아이디문제언어결과실행 시간메모리
1320367nikaa123선물 (IOI25_souvenirs)C++20
0 / 100
12 ms332 KiB
#include <bits/stdc++.h> #include "souvenirs.h" #include <utility> #include <vector> using namespace std; int p[105]; int cnt[105]; int last = -1; void solve(int x) { auto [v,res] = transaction(x); if (x == res) return; for (auto x:v) cnt[x]++; int c = x - res; int n = v.size(); while (n > 1) { solve(c/n); while (v.back() >= last) { n--; c -= p[v.back()]; v.pop_back(); } } p[v.back()] = c; if (c != 1 && v.back() > last+1) solve(c-1); last = v.back(); } void buy_souvenirs(int N, long long P0) { std::pair<std::vector<int>, long long> res = transaction(3); p[0] = P0; solve(P0-1); for (int i = 0; i < N; i++) { while (cnt[i] < i) transaction(p[i]); } return; }
#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...