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;
map<int,int> mp;
int query(int x)
{
if(mp[x]==0) mp[x] = skim(x);
return mp[x];
}
pair<long long,long long> aproximativ(int st, int K)
{
int dr = st+K-1;
long long x = query(st);
long long y = query(dr);
pair<long long,long long> aux = {x+y,x+y};
for(int i=2;i<K;i++)
{
aux.first += x+i-1;
aux.second += y-i+1;
}
return aux;
}
long long exact(int st, int K)
{
int dr = st+K-1;
long long sum=0;
for(int i=st;i<=dr;i++)
sum += query(i);
return sum;
}
void solve(int N, int K, long long A, int S)
{
int st=1,dr=N-K+1;
while(st<=dr)
{
int mij=(st+dr)/2;
if(exact(mij,K)>=A)
{
if(exact(mij,K)<=2*A)
{
vector<int> sol;
for(int i=mij;i<mij+K;i++)
sol.push_back(i);
answer(sol);
return;
}
dr = mij-1;
}
else
st = mij+1;
}
impossible();
}
# | 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... |