제출 #1269793

#제출 시각아이디문제언어결과실행 시간메모리
1269793AlgorithmWarriorA Difficult(y) Choice (BOI21_books)C++20
100 / 100
1 ms408 KiB
#include <bits/stdc++.h>
#include"books.h"

using namespace std;

long long v[15];

void solve(int N, int K, long long A, int S) {
    long long sum=0;
    int i;
    for(i=1;i<=K;++i)
        sum+=(v[i]=skim(i));
    if(sum>2*A)
        impossible();
    if(A<=sum){
        vector<int>v;
        for(i=1;i<=K;++i)
            v.push_back(i);
        answer(v);
    }
    sum-=v[K];
    /// [)
    int st=K,dr=N+1;
    while(dr-st>1){
        int mij=(st+dr)/2;
        if(skim(mij)+sum<=2*A)
            st=mij;
        else
            dr=mij;
    }
    sum+=v[K];
    for(i=1;i<=K;++i){
        sum-=v[K-i+1];
        sum+=skim(st-i+1);
        if(A<=sum){
            vector<int>v;
            int j;
            for(j=1;j<=K-i;++j)
                v.push_back(j);
            for(j=st-i+1;j<=st;++j)
                v.push_back(j);
            answer(v);
        }
    }
    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...