Submission #1297303

#TimeUsernameProblemLanguageResultExecution timeMemory
1297303denislavGap (APIO16_gap)C++20
0 / 100
32 ms3232 KiB
# include <iostream>
# include <vector>
# include <algorithm>
using namespace std;
# include "gap.h"
//# include "grader.cpp"

const long long INF=1e18;
const int MAX=2e5+11;

int n;
long long a[MAX];

long long findGap(int T, int _N)
{

    n=_N;

    if(T==1)
    {
        long long l=1,r=n;
        a[0]=-1;
        a[n+1]=1e18+1;
        while(l<=r)
        {
            long long mn,mx;
            MinMax(a[l-1]+1,a[r+1]-1,&mn,&mx);
            a[l]=mn;
            a[r]=mx;
            l++;
            r--;
        }

        long long ans=0;
        for(int i=1;i<n;i++) ans=max(ans,a[i+1]-a[i]);
        return ans;
    }

    long long MN,MX;
    MinMax(1LL,(long long)1e18,&MN,&MX);
    long long last=0,ans=0;
    /*
    for(int bit=1;bit<60;bit++)
    {
        long long mn,mx;
        MinMax(last+1,last+(1LL<<bit),&mn,&mx);
        if(mn!=-1)
        {
            last=mn;
            break;
        }
    }
    */

    last=MN;
    while(true)
    {
        //cout<<"->"<<last<<"\n";
        if(last==MX) break;
        for(int bit=1;bit<=60;bit++)
        {
            long long mn,mx;
            long long s=last+1,t=last+(1LL<<bit);
            MinMax(s,t,&mn,&mx);

            if(mn==-1) continue;
            else
            {
                ans=max(ans,mn-last);
                last=mx;
            }
        }
    }

	return ans;
}

/*
2 4
2 3 6 8
*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...