Submission #1249531

#TimeUsernameProblemLanguageResultExecution timeMemory
1249531Charizard2021Souvenirs (IOI25_souvenirs)C++20
21 / 100
12 ms420 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; } else{ map<long long, long long> mp; long long cur = P0; for(int i = 1; i < N; i++){ if(mp.find(i) != mp.end() && mp[i] == i){ continue; } if(i == N - 1){ cur--; pair<vector<int>, long long> res = transaction(cur); sort(res.first.begin(), res.first.end()); reverse(res.first.begin(), res.first.end()); if(res.first[0] == i){ for(long long x : res.first){ mp[x]++; } for(int j = 0; j < i - mp[i]; j++){ pair<vector<int>, long long> res2 = transaction(cur); } } return; } cur -= 2; pair<vector<int>, long long> res = transaction(cur); sort(res.first.begin(), res.first.end()); reverse(res.first.begin(), res.first.end()); if(res.first[0] == i){ for(long long x : res.first){ mp[x]++; } for(int j = 0; j < i - mp[i]; j++){ pair<vector<int>, long long> res2 = transaction(cur); } } else{ for(long long x : res.first){ mp[x]++; } cur++; for(int j = 0; j < i - mp[i]; j++){ pair<vector<int>, long long> res2 = transaction(cur); } } } } }
#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...