Submission #1286459

#TimeUsernameProblemLanguageResultExecution timeMemory
1286459nataliaaSouvenirs (IOI25_souvenirs)C++20
25 / 100
13 ms400 KiB
#include "souvenirs.h" #include<bits/stdc++.h> using namespace std; void buy_souvenirs(int N, long long P0) { if(N==2){pair<vector<int>, long long> res = transaction(P0-1);return;} if(N==3) { pair<vector<int>, long long> res = transaction(P0-1); if(res.first.size()==1) { transaction(P0-2-res.second); transaction(P0-2-res.second); } else { transaction((P0-1-res.second)/2); } return; } if(P0==N){ for(int i = 1; i <N; i++) { for(int j = 1; j<=i; j++) { pair<vector<int>, long long> res = transaction(P0-i); } } return; } bool t = 0;int cnt=N, p = P0; for(int i = 1; i < N-1; i++) { pair<vector<int>, long long> res = transaction(p-1); //cout << res.first.size() <<" " << res.second <<" "<< p<<endl; if(res.first.size()==2) { cnt--; t=1; for(int j = 1;j < i; j++) { transaction(p-2); } } else { for(int j = 1;j < i; j++) { transaction(p-1-res.second); //cout << p-1-res.second<<" " << j <<endl; } p-=res.second; } p--; } if(t) for(int i = 0; i<cnt; i++) transaction(1); else for(int i = 0; i < N-1; i++) transaction(p-1); }
#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...