Submission #1204972

#TimeUsernameProblemLanguageResultExecution timeMemory
1204972a.pendovGap (APIO16_gap)C++20
30 / 100
43 ms2240 KiB
#include "gap.h"
#include <bits/stdc++.h>
using namespace std;
const long long MAX1=LLONG_MAX;

inline long long max1(long long a,long long b)
{
    if(a>b)return a;
    return b;
}

long long solve1(long long N)
{
    long long l=0,r=MAX1,a,b,ans=0;
    vector<long long> v;

    for(long long i=0;i<N;i+=2)
    {
        MinMax(l,r,&a,&b);
        v.push_back(a);
        if(a!=b)v.push_back(b);
        l=a+1;
        r=b-1;
    }

    sort(v.begin(),v.end());

    for(long long i=1;i<N;i++)
    {
        ans=max1(ans,v[i]-v[i-1]);
    }

    return ans;
}

long long solve2(long long N)
{
    long long a,b,las,ans=0,x,y;
    MinMax(0,MAX1,&a,&b);
    long long k=(b-a+N-1)/(N-1);
    las=a;
    for(long long i=a;i<b;i+=k)
    {
        MinMax(i,i+k-1,&x,&y);
        if(x==-1)continue;
        ans=max1(ans,x-las);
        las=y;
    }

    return ans;
}

long long findGap(int T, int N)
{
    if(T==1)return solve1(N);
    return solve2(N);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...