제출 #1066935

#제출 시각아이디문제언어결과실행 시간메모리
1066935vjudge1A Difficult(y) Choice (BOI21_books)C++17
0 / 100
1 ms1156 KiB
//Dost SEFEROĞLU
#include <bits/stdc++.h>
#include "books.h"
using namespace std;
#define int long long
#define pii pair<int,int>
#define ff first
#define ss second
#define sp << " " <<    
#define all(cont) cont.begin(),cont.end()
#define vi vector<int>

using namespace std;

void solve(int32_t N, int32_t K, long long A, int32_t S) {
    vi memory(N+1,0);
    int sm = 0;
    for (int j=1;j<=K-1;j++) {
        if (!memory[j]) memory[j] = skim(j);
        sm+=memory[j];
    } 
    auto get = [&](int p) -> int{
        if (memory[p]) return memory[p];
        return memory[p] = skim(p);
    };
    int l = K;
    int r = N;
    while (l<=r) {
        int m = (l+r) >> 1;
        if (get(m) >= A-sm) r = m-1;
        else l = m+1;
    }
    if (l<=N && get(l)+sm <= 2*A) {
        vector<int32_t> v;
        for (int j=1;j<=K-1;j++) v.push_back(j);
        v.push_back(l);
        answer(v);
        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...