제출 #1000851

#제출 시각아이디문제언어결과실행 시간메모리
1000851MarwenElarbiA Difficult(y) Choice (BOI21_books)C++17
0 / 100
1 ms1112 KiB
#include <bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define ll long long
#define pb push_back
#define ii pair<int,int>
const int nax=2e5+5;
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());

long long skim(int);

void answer(std::vector<int>);

void impossible();

void solve(int N, int K, long long A, int S){
    int l=0;
    int r=N-K+2;
    ll cur=0;
    vector<ll> vis(N+1,0);
    while(r-l>1){
        int mid=(r+l)/2;
        cur=0;
        for (int i = mid; i < mid+K ; ++i)
        {
            if(vis[i]!=0) cur+=vis[i];
            else {
                vis[i]=skim(i);
                cur+=vis[i];
            }
        }
        if(cur>=A) r=mid;
        else l=mid;
    }
    if(cur>2*A||cur<A) impossible();
    else{
        vector<int> ans;
        for (int i = r; i < r+K; ++i)
        {
            ans.pb(i);
        }
        answer(ans);
    }
    return;
}
#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...