Submission #729154

#TimeUsernameProblemLanguageResultExecution timeMemory
729154Jean7A Difficult(y) Choice (BOI21_books)C++14
0 / 100
3 ms208 KiB
#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 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...