제출 #1287835

#제출 시각아이디문제언어결과실행 시간메모리
1287835nikoloz-ch선물 (IOI25_souvenirs)C++20
25 / 100
13 ms400 KiB
#include <bits/stdc++.h> using namespace std; pair<vector<int>, long long> transaction(long long M); void buy_souvenirs(int N, long long P0){ if(N == 2){ auto pii = transaction(P0-1); return; } else if(N == 3){ auto pii = transaction(P0-1); if(pii.first.size() == 2){ auto p3 = transaction((P0-1-pii.second)/2); return; } auto p = transaction(P0-2-pii.second); auto p2 = transaction(P0-2-pii.second); return; } else{ long long l1 = P0; vector<int> mp(N, 0); for(int i = 1; i < N; i++){ bool tr = false; for(int j = 0; j < i; j++){ if(l1 <= 1) return; auto pii = transaction(l1-1); for(auto t : pii.first) { if(t >= 0 && t < N) mp[t]++; } if(pii.first.size() == 2) tr = true; if(pii.second == 1ll) tr = true; bool all_done = true; for(int k = 1; k < N; ++k) if(mp[k] < k){ all_done = false; break; } if(all_done) return; } if(tr) l1--; l1--; if(l1 < 1) l1 = 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...