Submission #772682

#TimeUsernameProblemLanguageResultExecution timeMemory
772682ZHIRDILBILDIZA Difficult(y) Choice (BOI21_books)C++14
0 / 100
2 ms288 KiB
#include<bits/stdc++.h>
#include"books.h"
#define ll long long
#define fi first
#define se second
using namespace std ;
//void impossible()
//{
//    cout << "-1\n" ;
//    exit(0) ;
//}
//void answer(vector<int> ans)
//{
//    for(int i : ans)
//        cout << i << ' ' ;
//    exit(0) ;
//}
//ll skim(int ind)
//{
//    ll num ;
//    cout << "? " << ind << '\n' ;
//    cin >> num ;
//    return num ;
//}
void solve(int n, int k, ll a, int s)
{
    vector<int> ans ;
    ll l = 0, r = n - k + 1 ;
    vector<pair<ll, int>> w, ls ;
    while(l + 1 < r)
    {
        w.clear() ;
        ll mid = (l + r) >> 1, sum = 0 ;
        for(int i = mid ; i < mid + k ; i++)
        {
            ll num = skim(i) ;
            sum += num ;
            w.push_back({num, i}) ;
        }
        if(sum > 2 * a)r = mid ;
        else
        {
            ls = w ;
            ans.clear() ;
            for(auto i : w)
                ans.push_back(i.se) ;
            l = mid ;
        }
    }
    ll sum = 0 ;
    for(auto i : ls)
        sum += i.fi ;
    if(a <= sum && sum <= 2 * a)
        answer(ans) ;
    else
        impossible() ;
}
//signed main()
//{
//    int n, k, a, s ;
//    cin >> n >> k >> a >> s ;
//    solve(n, k, a, s) ;
//    return 0 ;
//}
#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...