제출 #1354108

#제출 시각아이디문제언어결과실행 시간메모리
1354108nataliaaA Difficult(y) Choice (BOI21_books)C++20
0 / 100
0 ms412 KiB
#include <bits/stdc++.h>
#include "books.h"
using namespace std;
void solve(int n, int k, long long a, int Q) {
    int l = 1, r = n;
    vector<int> ans;
    int es = n+1;
    while(l<=r){
        int m = (l+r)/2;
        long long ok = skim(m);
        if(ok>a) {r = m-1; es = m;}
        else if(ok<a) {l = m+1;}
        else {
            es= m;
            break;
        }
    }
    //cout << es <<endl;
    vector<pair<int,int>> v;
    long long s = 0;
    for(int i = 1; i<= k; i++) {
        long long x = skim(i);
        s+=x;
        v.push_back({x, i});
        
    }
    if(s>=2*a) impossible();
    int q = es-k;
    q = max(1, q);
    if(es-k<=k) q = k+1;
    for(int i = q; i< es; i++){
        long long x = skim(i);
        v.push_back({x, i});
    } 
    //cout << s << endl;
    int m = v.size();
    r = k-1, l = 0;
    while(r<m-1){
        if(s>=a&&s<=2*a){
            for(int i = l; i<=r; i++) ans.push_back(v[i].second);
            answer(ans);
        }
        
        s-=v[l].first;
        r++;
        l++;
        s+=v[r].first;
    }
    if(s>=a&&s<=2*a){
        for(int i = l; i<=r; i++) ans.push_back(v[i].second);
        answer(ans);
    }
    impossible();
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…