제출 #1329714

#제출 시각아이디문제언어결과실행 시간메모리
1329714feyzaGap (APIO16_gap)C++20
30 / 100
39 ms2288 KiB
#include <bits/stdc++.h>
#include "gap.h"

using namespace std;

typedef long long ll;

vector<ll>v;

ll solvet1(int T,int N)
{
    ll l=0,r=1e18; int cnt=0;

	while(cnt<N && r-l>1)
    {
        MinMax(l,r,&l,&r);
        v.push_back(l);
        v.push_back(r);
        l++; r--;
        cnt+=2;
    }

	sort(v.begin(),v.end());
	ll ans=0;
	for(int i=0;i<v.size()-1;i++)
    {
        ans=max(ans,v[i+1]-v[i]);
    }

    return ans;
}

ll solvet2(int T,int N)
{
    ll l,r;
    MinMax(0,1e18,&l,&r);

    ll bucket=(r-l)/(N-1)+1;
    ll fmin,fmax,ans=0;
    ll askl=0;

    //cout<<bucket<<endl;

    while(fmax!=r)
    {
        MinMax(askl+1,askl+bucket,&fmin,&fmax);
        ans=max(ans,fmin-l);
        l=fmax;
        askl+=bucket;
    }

    return ans;
}

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