Submission #943095

#TimeUsernameProblemLanguageResultExecution timeMemory
943095teacupA Difficult(y) Choice (BOI21_books)C++14
0 / 100
1 ms1112 KiB
#include <bits/stdc++.h> #include "books.h" using namespace std; #define ll long long #define ii pair<int,int> #define vi vector<int> typedef vector<ii> vii; // // --- Sample implementation for the task books --- // // To compile this program with the sample grader, place: // books.h books_sample.cpp sample_grader.cpp // in a single folder and run: // g++ books_sample.cpp sample_grader.cpp // in this folder. // void solve(int N, int K, long long A, int S) { // TODO implement this function vector<long long> V(N+5); vector<int> ans; V.assign(V.size(), -1); long long sum=0; for (int i=1; i<=K; i++){ V[i]=skim(i); sum+=V[i]; ans.push_back(V[i]); } if (sum>2*A){ impossible(); }else if (sum>=A){ //answer!! answer(ans); }else{ //sum<A ans.clear(); //binary search from K+1 to N ll L=1, R=N-K+1, M; while (L<R) { M = (L+R)/2; sum = 0; for (ll i=0; i<K; i++){ if (V[M+i]==-1) V[M+i] = skim(M+i); sum += V[M+i]; } if (sum < A) L = M+1; else R = M; } sum = 0; for (ll i=0; i<K; i++){ if (V[L+i]==-1) V[L+i] = skim(L+i); sum += V[L+i]; ans.push_back(L+i); } if(sum>=A && sum<=2*A){ answer(ans); }else{ impossible(); } } }
#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...