Submission #1250131

#TimeUsernameProblemLanguageResultExecution timeMemory
1250131zzzzzzzzzzzzzzzSouvenirs (IOI25_souvenirs)C++20
100 / 100
12 ms412 KiB
#include "souvenirs.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; int n, e; vector<ll> ansli, cnt; int solve(ll ans){ //end: 어디까지 아는가? auto res = transaction(ans); vector<int> v=res.first; for(int j:v) cnt[j]++; ll cost=ans-res.second; while(v[0]<e){ while(e<=v.back()){ cost-=ansli[v.back()]; v.pop_back(); } if(v[0]==e-1) break; e=solve((cost-1)/v.size()); } ansli[v[0]]=cost; return v[0]; } void buy_souvenirs(int N, ll P0) { n=N; e=n; ansli.resize(n); cnt.resize(n); solve(P0-1); for(int i=1;i<n;i++){ while(cnt[i]<i){ transaction(ansli[i]); cnt[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...