Submission #1250107

#TimeUsernameProblemLanguageResultExecution timeMemory
1250107zzzzzzzzzzzzzzzSouvenirs (IOI25_souvenirs)C++20
39 / 100
12 ms420 KiB
#include "souvenirs.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; int n; vector<ll> ansli, cnt; int solve(ll ans, int e){ //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){ if(e<=v.back()){ cost-=ansli[v.back()]; v.pop_back(); } if(v[0]==e-1) break; e=solve((cost-1)/(ll)v.size(),e); } ansli[v[0]]=cost; return v[0]; } void buy_souvenirs(int N, ll P0) { n=N; ansli.resize(n); cnt.resize(n); solve(P0-1,n); 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...