제출 #1302449

#제출 시각아이디문제언어결과실행 시간메모리
1302449aaaaaaaa선물 (IOI25_souvenirs)C++20
21 / 100
13 ms400 KiB
#include "souvenirs.h" #include <bits/stdc++.h> using namespace std; void buy_souvenirs(int N, long long P0) { //pair<vector<int>, long long> res = transaction(P0 - 1); // N, N - 1, N - 2, N - 3, N - 4, .. 1 if(N == 2){ transaction(P0 - 1); return; } long long last = P0; vector<int> buy(N + 1, 0); for(int i = 1; i <= N - 1; ++i){ assert(buy[i] < i); if(buy[i] == i) continue; if(i == N - 1){ for(int j = 1; j <= i - buy[i]; ++j) transaction(last - 1); continue; } pair<vector<int>, long long> res = transaction(last - 2); assert((int) res.first.size() > 0); for(auto it : res.first) buy[it] += 1; if(res.first[0] ^ i){ for(int j = 1; j <= i - buy[i]; ++j){ transaction(last - 1); } last -= 1; }else{ for(int j = 1; j <= i - buy[i]; ++j){ transaction(last - 2); } last -= 2; } } 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...