제출 #729167

#제출 시각아이디문제언어결과실행 시간메모리
729167Jean7A Difficult(y) Choice (BOI21_books)C++14
100 / 100
2 ms416 KiB
#include <bits/stdc++.h> #include "books.h" #define mid ((l+r)>>1) using namespace std ; const long long N = 1e5+5 ; long long a[N] ; void solve(int n, int k, long long A, int s) { long long sum = 0 ; vector <int> v ; for ( long long i = 1 ; i <= k ; i++ ) { a[i] = skim(i) ; sum += a[i] ; v.push_back(i) ; } if ( sum > 2ll * A ) { impossible () ; } long long id = k , xx = n+1 ; while ( sum < A && id > 0 ) { long long l = id , r = xx ; if ( !a[r-1] ) { a[r-1] = skim(r-1) ; } if ( sum + a[r-1] - a[l] <= 2ll * A ) { l = r-1 ; } while ( r - l > 1 ) { if ( !a[mid] ) { a[mid] = skim(mid) ; } if ( sum + a[mid] - a[id] <= 2ll * 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 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...