Submission #1286444

#TimeUsernameProblemLanguageResultExecution timeMemory
1286444matereSouvenirs (IOI25_souvenirs)C++20
100 / 100
14 ms404 KiB
#include "souvenirs.h" #include <bits/stdc++.h> using namespace std; long long ans[105],tb[105],kn=0; void find_ans(long long i){ pair<vector<int>,long long>res = transaction(i); for(int i:res.first) tb[i]++; while(true){ while(res.first.back()>=kn){ res.second+=ans[res.first.back()]; res.first.pop_back(); } if(res.first.size()==1) break; find_ans((i-res.second)/res.first.size()); } ans[res.first[0]]=i-res.second; if(kn!=res.first[0]+1) find_ans(ans[res.first[0]]-1); kn=res.first[0]; } void buy_souvenirs(int n, long long P0){ kn=n; ans[0]=P0; find_ans(P0-1); for(int i=1;i<n;i++) while(tb[i]<i){ transaction(ans[i]); tb[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...