Submission #680864

#TimeUsernameProblemLanguageResultExecution timeMemory
680864YENGOYANA Difficult(y) Choice (BOI21_books)C++17
20 / 100
236 ms976 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.
//

void solve(int n, int k, long long a, int s) {
    // TODO implement this function
    vector<long long> vec(n);
    for (int i = 0; i < n; ++i) vec[i] = skim(i + 1);
    long long sm = 0;
    for (int i = 0; i < k - 1; ++i) sm += vec[i];
    deque<int> ans;
    for (int i = 1; i < k; ++i) ans.push_back(i);
    for (int i = k - 1; i < n; ++i) {
        if (sm + vec[i] >= a && sm + vec[i] <= 2 * a) {
            vector<int> res;
            for (int& x : ans) res.push_back(x);
            res.push_back(i + 1);
            answer(res);
            return;
        }
    }
    ans.push_back(k);
    sm += vec[k - 1];
    if (sm >= a && sm <= 2 * a) {
        vector<int> res;
        for (int& x : ans) res.push_back(x);
        answer(res);
        return;
    }
    for (int i = 1; i + k - 1 < n; ++i) {
        ans.pop_front();
        ans.push_back(i + k);
        sm -= vec[i - 1];
        sm += vec[i + k - 1];
        if (sm >= a && sm <= 2 * a) {
            vector<int> res;
            for (int& x : ans) res.push_back(x);
            answer(res);
            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...