이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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 , r = xx ;
while ( l < r ) {
if ( !a[l] ) {
a[l] = skim(l) ;
}
if ( sum + a[l] - a[id] > A ) {
break ;
}
l++ ;
}
// 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... |