Submission #1249538

#TimeUsernameProblemLanguageResultExecution timeMemory
1249538Charizard2021선물 (IOI25_souvenirs)C++20
7 / 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 if(N == 3){ pair<vector<int>, long long> res = transaction(P0 - 1); if((int)res.first.size() == 1){ long long B = P0 - 1 - res.second; pair<vector<int>, long long> res2 = transaction(B - 1); pair<vector<int>, long long> res3 = transaction(B - 1); } else{ long long sum = P0 - 1 - res.second; long long thing = sum/2; pair<vector<int>, long long> res2 = transaction(thing); pair<vector<int>, long long> res3 = transaction(thing); } } 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...