This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#include "books.h"
#define mid ((l+r)>>1)
using namespace std ;
const int N = 1e5+5 ;
int a[N] ;
void solve(int n, int k, long long A, int s) {
int sum = 0 ;
vector <int> v ;
for ( int i = 1 ; i <= k ; i++ ) {
a[i] = skim(i) ;
sum += a[i] ;
v.push_back(i) ;
}
if ( sum > 2 * A ) {
impossible () ;
}
int id = k , xx = n+1 ;
while ( sum < A && id > 0 ) {
int l = id+1 , r = xx ;
while ( r - l > 1 ) {
if ( !a[mid] ) {
a[mid] = skim(mid) ;
}
if ( sum + a[mid] - a[id] <= 2 * A ) {
l = mid ;
}
else {
r = mid ;
}
}
sum -= a[id] ;
sum += a[l] ;
v[id-1] = l ;
xx = l ;
id-- ;
}
if ( sum < A ) {
impossible () ;
}
answer(v) ;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |