Submission #1260246

#TimeUsernameProblemLanguageResultExecution timeMemory
1260246truongdz_top12Souvenirs (IOI25_souvenirs)C++20
4 / 100
1 ms420 KiB
#include "souvenirs.h" #include<bits/stdc++.h> using namespace std; int N,Q[111]; long long P[111]; void ask(int N,long long M) { pair<vector<int>,long long>buy=transaction(M); for(auto&i:buy.first) ++Q[i]; auto previous=buy; while(true) { buy=previous; while(!buy.first.empty()&&P[buy.first.back()]) { buy.second+=P[buy.first.back()]; buy.first.pop_back(); } if(buy.first.size()==1&&(buy.first[0]==N-1||P[buy.first[0]])) { P[buy.first[0]]+=M-buy.second; break; } if(buy.first.size()==1) ask(N,M-buy.second-1); else ask(N,(M-buy.second)/buy.first.size()); } } void buy_souvenirs(int N,long long P0) { P[0]=P0; ask(N,P0-1); for(int i=0;i<N;++i) { while(Q[i]<i) { transaction(P[i]); ++Q[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...