Submission #772820

#TimeUsernameProblemLanguageResultExecution timeMemory
772820ZHIRDILBILDIZA Difficult(y) Choice (BOI21_books)C++14
Compilation error
0 ms0 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) { int num ; cout << "? " << ind << '\n' ; cin >> num ; return num ; } void solve(int n, int k, ll a, int s) { vector<int> ans ; ll x[n + 1] = {}, pref[n + 1] = {} ; for(int i = 1 ; i <= k ; i++) { x[i] = skim(i) ; pref[i] = pref[i - 1] + x[i] ; } if(pref[k] > 2ll * a) impossible() ; if(a <= pref[k] && pref[k] <= 2ll * a) { for(int i = 1 ; i <= k ; i++) ans.push_back(i) ; answer(ans) ; } // if(s >= n) // { // for(int i = k + 1 ; i <= n ; i++) // { // x[i] = skim(i) ; // pref[i] = pref[i - 1] + x[i] ; // } // for(int i = 1 ; i <= n ; i++) // if(x[i] >= a && pref[k - 1] + x[i] <= 2ll * a) // { // for(int j = 1 ; j < k ; j++) // ans.push_back(j) ; // ans.push_back(i) ; // answer(ans) ; // } // for(int i = k ; i <= n ; i++) // if(a <= pref[i] - pref[i - k] && pref[i] - pref[i - k] <= 2ll * a) // { // for(int j = i - k + 1 ; j <= i ; j++) // ans.push_back(j) ; // answer(ans) ; // } // impossible() ; // } ll l = 0, r = n + 1 ; while(l + 1 < r) { ll mid = (l + r) >> 1ll, num = x[mid] ; if(!num) { num = skim(mid) ; x[mid] = num ; } if(num < a)l = mid ; else r = mid ; } if(r != n + 1 && x[r] + pref[k - 1] <= 2ll * a) { for(int i = 1 ; i < k ; i++) ans.push_back(i) ; ans.push_back(r) ; answer(ans) ; } l = 0, r = n - k + 2 ; vector<pair<ll, int>> w, ls ; while(l + 1 < r) { w.clear() ; ll mid = (l + r) >> 1ll, sum = 0 ; for(int i = mid ; i < mid + k ; i++) { ll num = x[i] ; if(!num) { num = skim(i) ; x[i] = num ; } sum += num ; w.push_back({num, i}) ; } if(sum > 2ll * a)r = mid ; else { ls = w ; ans.clear() ; for(auto i : w) ans.push_back(i.se) ; if(sum >= a)answer(ans) ; l = mid ; } } impossible() ; } signed main() { int n, k, a, s ; cin >> n >> k >> a >> s ; solve(n, k, a, s) ; return 0 ; }

Compilation message (stderr)

/usr/bin/ld: /tmp/ccurdClM.o: in function `answer(std::vector<int, std::allocator<int> >)':
grader.cpp:(.text+0xa0): multiple definition of `answer(std::vector<int, std::allocator<int> >)'; /tmp/ccenvnDO.o:books.cpp:(.text+0x30): first defined here
/usr/bin/ld: /tmp/ccurdClM.o: in function `impossible()':
grader.cpp:(.text+0x160): multiple definition of `impossible()'; /tmp/ccenvnDO.o:books.cpp:(.text+0x0): first defined here
/usr/bin/ld: /tmp/ccurdClM.o: in function `skim(int)':
grader.cpp:(.text+0x1a0): multiple definition of `skim(int)'; /tmp/ccenvnDO.o:books.cpp:(.text+0xa0): first defined here
/usr/bin/ld: /tmp/ccurdClM.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccenvnDO.o:books.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status