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...