Submission #1364914

#TimeUsernameProblemLanguageResultExecution timeMemory
1364914julia_08A Difficult(y) Choice (BOI21_books)C++20
20 / 100
43 ms1056 KiB
#include <bits/stdc++.h>
#include "books.h"

using namespace std;
using ll = long long;

void solve(int n, int k, ll a, int s){

  vector<pair<int, ll>> x;

  pair<int, ll> big = {0, 0};

  for(int i=1; i<=n; i++){

    ll cur = skim(i);
    big = {i, cur};

    if(cur <= a){
      x.push_back({i, cur});
    } else break;

  }

  vector<int> ans;

  ll sum = 0;

  if((int) x.size() < k - 1){
    impossible();
    return;
  }

  for(int i=0; i<(k - 1); i++) sum += x[i].second;

  if(a <= sum + big.second && sum + big.second <= 2 * a){

    for(int i=0; i<(k - 1); i++) ans.push_back(x[i].first);
    ans.push_back(big.first);

    answer(ans);
    return;

  }

  int l = 0;

  for(int i=(k - 1); i<x.size(); i++){

    sum += x[i].second;

    if(a <= sum && sum <= 2 * a){

      for(int j=l; j<=i; j++) ans.push_back(x[j].first);

      answer(ans);
      return;

    }

    sum -= x[l].second;
    l ++;

  }

  impossible();

}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...