Submission #1178715

#TimeUsernameProblemLanguageResultExecution timeMemory
1178715alexddA Light Inconvenience (CEOI23_light)C++20
0 / 100
0 ms420 KiB
#include<bits/stdc++.h>
#include "light.h"
using namespace std;
#define int long long
int n;
vector<long long> prec;
void prepare()
{
    n=1;
    prec.clear();
    prec.push_back(1);
}
int calc(vector<long long> aux)
{
    int poz=0,mxm=0;
    for(int i=0;i<aux.size();i++)
    {
        while(poz+1<prec.size() && prec[poz+1]<=aux[i])
            poz++;
        mxm = max(mxm, aux[i]-prec[poz]);
    }
    return mxm;
}
vector<long long> simplify(vector<long long> aux)
{
    vector<long long> newaux;
    for(int i=0;i<aux.size();i++)
        if(i==0 || aux[i]!=aux[i-1])
            newaux.push_back(aux[i]);
    return newaux;
}
pair<long long, vector<long long>> join(long long p)
{
    n += p;
    vector<int> aux;
    aux = prec;
    aux.push_back(n);
    for(int i=2;n-i+1>n-p;i*=2)
        aux.push_back(n-i+1);
    sort(aux.begin(),aux.end());
    aux = simplify(aux);
    int x = calc(aux);
    prec=aux;
    return {x, aux};
}
pair<long long, vector<long long>> leave(long long p)
{
    n -= p;
    vector<int> aux;
    for(int i=prec.size()-1;i>=0;i--)
    {
        for(int j=0;j<=p;j++)
            aux.push_back(min(n,prec[i]+j));
        //aux.push_back(min(n,prec[i]));
    }
    sort(aux.begin(),aux.end());
    aux = simplify(aux);
    int x = calc(aux);
    prec=aux;
    return {x, aux};
}
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...