제출 #1263096

#제출 시각아이디문제언어결과실행 시간메모리
1263096nerrrmin선물 (IOI25_souvenirs)C++20
18 / 100
0 ms412 KiB
#include "souvenirs.h" #include <utility> #include <vector> #include <bits/stdc++.h> using namespace std; long long n, p0; long long cnt[205]; void buy_souvenirs(int N, long long P0) { n = N; p0 = P0; std::pair<std::vector<int>, long long> res = transaction(p0 -1); if(res.first.size() == 2) { long long sum = p0 - 1 - res.second; std::pair<std::vector<int>, long long> res2 = transaction(sum/2); } else if(res.first.size() == 1) { long long p1 = p0 - 1 - res.second; std::pair<std::vector<int>, long long> res2 = transaction(p1-1); std::pair<std::vector<int>, long long> res3 = transaction(p1-1); } return ; long long pre = p0; int st = 0, pow = 1; while(true) { std::pair<std::vector<int>, long long> res = transaction(pow); vector < int > taken = res.first; if(!taken.size()) { pow *= 2; st ++; continue; } if(taken[0] == 1) { long long resto = res.second; long long p1 = pow - resto; /// vzeli sme p1-to long long p2 = p1 -1; std::pair<std::vector<int>, long long> res2 = transaction(p2); std::pair<std::vector<int>, long long> res3 = transaction(p2); return; } else { long long resto = res.second; long long p2 = pow - resto; std::pair<std::vector<int>, long long> res2 = transaction(p0-1); if(res2.first.size() == 1) { std::pair<std::vector<int>, long long> res3 = transaction(p2); } return; } } 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...