| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 549696 | ivan24 | A Difficult(y) Choice (BOI21_books) | C++14 | 2 ms | 1920 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#include "books.h"
using namespace std;
using ll = long long int;
typedef vector<ll> vi;
typedef pair<ll,ll> ii;
typedef vector<ii> vii;
typedef vector<vi> vvi;
ll min(ll x, ll y){
return ((x < y) ? x : y);
}
ll max (ll x, ll y){
return ((x > y) ? x : y);
}
class Solver{
private:
ll n,k,a,s;
vi memo;
ll query (ll i){
if (memo[i] == -1) memo[i] = skim(i+1);
return memo[i];
}
ll find_crit (){
// returns largest idx i
// query(i) < a
ll l = 0, r = n-1;
ll m;
while (r >= l){
m = (l+r+1)/2;
if (l == r && l == m) return m;
if (query(m) >= a){
r = m-1;
}else{
l = m;
}
}
if (query(0) >= a) return -1;
return m;
}
public:
Solver(int n, int k, ll a, int s): n(n), k(k), a(a), s(s){
memo.assign(2e5,-1);
}
void solve(){
ll crt = find_crit();
ll crt_val = -1;
if (n > crt+1) crt_val = query(crt+1);
if (crt >= k-1){
vi inc,idx;
for (ll i = 0; k > i; i++){
inc.push_back(query(i));
idx.push_back(i);
}
for (ll i = max(k,crt-k+1); crt >= i; i++){
inc.push_back(query(i));
idx.push_back(i);
}
for (ll i = k; inc.size() >= i; i++){
ll sum = 0;
for (ll j = i-k; i > j; j++) sum += inc[j];
if (2*a >= sum && sum >= a){
vector<int> res;
for (ll j = i-k; i > j; j++)
res.push_back(idx[j]+1);
answer(res);
return;
}
}
}
if (crt_val != -1){
vi sml;
ll sum = 0;
for (ll i = 0; k-1 > i; i++)
sum += query(i);
sum += crt_val;
if (2*a >= sum && sum >= a){
vector<int> res;
for (ll i = 0; k-1 > i; i++) res.push_back(i+1);
res.push_back(crt+1+1);
answer(res);
return;
}
}
impossible();
}
};
void solve(int n, int k, long long a, int s) {
// TODO implement this function
Solver mySolver(n,k,a,s);
mySolver.solve();
}Compilation message (stderr)
| # | 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... | ||||
