제출 #1365907

#제출 시각아이디문제언어결과실행 시간메모리
1365907lucasdmyA Difficult(y) Choice (BOI21_books)C++20
0 / 100
1 ms1180 KiB
#include <bits/stdc++.h>
#include "books.h"
using namespace std;
/*int skim(int x){
    cout<<x<<endl;
    int r;
    cin>>r;
    return r;
}
void answer(vector<int>r){
    for(int k=0;k<r.size();k++){
        cout<<r[k]<<' ';
    }
    exit(0);
}
void impossible(){
    cout<<"IMPOSSIBLE!"<<endl;
    exit(0);
}*/
void solve(int n, int books, long long int a, int s){
    vector<long long int>v(n+10);
    long long int sum=0;
    vector<int>resp;
    for(int k=1;k<books;k++){
        v[k]=skim(k);
        sum+=v[k];
        resp.push_back(k);
    }
    int p1=books, p2=n;
    while(p1<p2){
        int m=(p1+p2+1)/2;
        v[m]=skim(m);
        if(a<=v[m]+sum and v[m]+sum<=2*a){
            resp.push_back(m);
            answer(resp);
        }
        if(v[m]+sum<a){
            p1=m;
        }else{
            p2=m-1;
        }
    }
    resp.push_back(p1);
    sum+=v[p1];
    if(p1==books and (sum>2*a or sum<a)){
        impossible();
    }
    for(int k=p1-1;k>=p1-books+1;k--){
        int aux=skim(k);
        int idx=books-(p1-k);
        resp[idx-1]=k;
        sum+=aux-v[idx];
        if(sum>=a){
            answer(resp);
        }
    }
    impossible();
}
/*int main(){
    int n, m, s;
    long long int a;
    cin>>n>>m>>a>>s;
    solve(n, m, a, s);
}*/
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…