Submission #850709

#TimeUsernameProblemLanguageResultExecution timeMemory
850709vjudge1A Difficult(y) Choice (BOI21_books)C++17
0 / 100
1 ms1112 KiB
#include <bits/stdc++.h>
 
#include "books.h"
 
using namespace std;
//
// --- Sample implementation for the task books ---
//
// To compile this program with the sample grader, place:
//     books.h books_sample.cpp sample_grader.cpp
// in a single folder and run:
//     g++ books_sample.cpp sample_grader.cpp
// in this folder.
//
 
const long long N = 1e5+5;
 
long long dp[N];
 
int sum(int x, int y) {
  int cnt = 0;
  for (int i = 0; i < y; i++) {
    if (dp[x+i] == -1) dp[x+i] = skim(x+i);
    cnt += dp[x+i];
  }
  return cnt;
}
 
void solve(int N, int K, long long A, int S) {
 
    memset(dp, -1, sizeof(dp));
    
    long long l = 1;
    long long r = N-K;
    while (l < r) {
      long long mid = (l+r)>>1;
      int x = sum(mid, K);
      if (x < A) l = mid+1;
      else if (x > A*2) r = mid-1;
      else {
        l = r = mid;
        break;
      }
    }
 
    int x = sum(l, K);
    if (x < A || A*2 < x) impossible();
 
    vector<int> ans(K);
    for (int i = 0; i < K; i++) {
      ans[i] = l+i;
    }
    answer(ans);
}
#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...