Submission #1195586

#TimeUsernameProblemLanguageResultExecution timeMemory
1195586anmattroiA Difficult(y) Choice (BOI21_books)C++17
20 / 100
61 ms616 KiB
#include "books.h"
#include <bits/stdc++.h>

using namespace std;


long long cached[100005];

long long get(int x) {
    return cached[x] ? cached[x] : cached[x] = skim(x);
}

void solve(int N, int K, long long A, int S) {
    for (int i = 1; i <= N; i++) get(i);
    for (int i = 1; i <= N-K+1; i++) {
        int64_t SUM = 0;
        for (int j = i; j <= i+K-1; j++) SUM += get(j);
        if (A <= SUM && SUM <= 2*A) {
            vector<int> ans;
            for (int j = i; j <= i+K-1; j++) ans.emplace_back(j);
            answer(ans);
            return;
        }
    }
    int FML = 0;
    for (int i = 1; i <= N; i++)
        if (get(i) >= A) {
            FML = i;
            break;
        }
    if (FML < K) {
        impossible();
        return;
    }
    int64_t SUM = 0;
    for (int i = 1; i < K; i++) SUM += get(i);
    SUM += get(FML);
    if (A <= SUM && SUM <= 2*A) {
        vector<int> ans;
        for (int i = 1; i < K; i++) ans.emplace_back(i);
        ans.emplace_back(FML);
        answer(ans);
        return;
    }
    impossible();
}


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