Submission #1251915

#TimeUsernameProblemLanguageResultExecution timeMemory
1251915MojoLakeSouvenirs (IOI25_souvenirs)C++20
18 / 100
0 ms412 KiB
#include "souvenirs.h" #include <utility> #include <vector> #include <bits/stdc++.h> #define all(x) begin(x), end(x) #define sz(x) (int)(x).size() using namespace std; using ll = long long; void buy_souvenirs(int N, long long P0) { // cerr << "P0: " << P0 << "\n"; auto [L, R] = transaction(P0 - 1); R = P0 - 1 - R; if (sz(L) == 1) { // cerr << "L length 1\n"; // cerr << "R: " << R << "\n"; transaction(R - 1); transaction(R - 1); return; } assert(sz(L) == 2); // cerr << "L length 2\n"; // cerr << "R: " << R << "\n"; ll m = R / 2; transaction(m); // std::pair<std::vector<int>, long long> res = transaction(3); // P0 > P1 ... > P(N - 1) > 0 // -> first questions P0 - 1 // Let's solve N = 3 // Case1: // we only buy one thing of price x // -> we can next just try x - 1 and solved // Case 2: // we buy two things, total price s = P1 + P2: // s / 2 is definitely smaller than P1 and larger(or equal) to P2. // 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...