제출 #1194392

#제출 시각아이디문제언어결과실행 시간메모리
1194392VMaksimoski008A Difficult(y) Choice (BOI21_books)C++17
0 / 100
1 ms1588 KiB
#include <bits/stdc++.h> #include "books.h" using namespace std; using ll = long long; void solve(int n, int k, ll A, int s) { vector<int> a(n+1); vector<ll> pref(n+1); for(int i=1; i<=n; i++) { a[i] = skim(i); pref[i] = a[i] + pref[i-1]; } for(int i=1; i+k-1<=n; i++) { ll sum = pref[i+k-1] - pref[i-1]; if(A <= sum && sum <= 2*A) { vector<int> ans; for(int j=i; j<=i+k-1; j++) ans.push_back(j); answer(ans); return ; } } for(int i=2; i+k-2<=n; i++) { ll sum = pref[i+k-2] - pref[i-1]; int l=1, r=i-1, p=0; while(l <= r) { int mid = (l + r) / 2; if(A <= sum + a[mid]) p = mid, r = mid - 1; else l = mid + 1; } if(p && sum + a[p] <= 2 * A) { vector<int> ans = { p }; for(int j=i; j<=i+k-2; j++) ans.push_back(j); answer(ans); return ; } } 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...