제출 #1254853

#제출 시각아이디문제언어결과실행 시간메모리
1254853AbdullahIshfaq선물 (IOI25_souvenirs)C++20
50 / 100
11 ms412 KiB
#include "souvenirs.h" #include <bits/stdc++.h> using namespace std; #define MOD 1000000007 #define ll long long const int N = 95; ll prc[N], tot[N]; int n; void recur(long long p){ auto [l, r] = transaction(p); for (auto i : l){ tot[i]++; } while (l.size() > 1){ if (prc[l.back()]){ r += prc[l.back()]; l.pop_back(); } else{ recur((p - r) / l.size()); } } prc[l[0]] = p - r; if (prc[l[0] + 1] == 0 and l[0] != n - 1){ recur(prc[l[0]] - 1); } } void buy_souvenirs(int n, ll p) { ::n = n; recur(p - 1); for(int i = 1; i < n; i++){ while(tot[i] < i){ transaction(prc[i]); tot[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...