제출 #1227590

#제출 시각아이디문제언어결과실행 시간메모리
1227590abdelhakimGap (APIO16_gap)C++20
100 / 100
45 ms3256 KiB
#include "gap.h"
#include <bits/stdc++.h>
#define dbg(x) cerr << #x << ' ' << x<< endl;
#define ll long long 
using namespace std;
long long findGap(int T, int N)
{
	if(T==2)
	{vector<ll> a;
	ll l=0;
	ll r=0;
	MinMax(0,1e18,&l,&r);
	ll maxr=r;
	ll curl=l;
	ll sz=(((r-l-N+1)/(N-1)))+1;
	a.push_back(curl);
	while(curl<=maxr)
	{
		ll curr=min(maxr,curl+sz);
		MinMax(curl,curr,&l,&r);
		if(r!=-1)
		{a.push_back(l);
		a.push_back(r);}
		curl=curr+1;
	}
	a.push_back(maxr);
	ll ans=0;
	for (int i=1;i<a.size()-1;i++)
	{
		ans=max(ans,a[i]-a[i-1]);
	}
	return ans;}
	else
	{
			vector<ll> a(N);
	ll curl = 0;
	ll curr=1e18;
	ll l=0;
	ll r=N-1;
	while(l<=r)
	{
		ll mn=0; ll mx=0;
		MinMax(curl,curr,&mn,&mx);
		// cout << "here"<<endl;
		a[l]=(ll)mn;
		a[r]=(ll)mx;
		curl=(ll)mn+1;
		curr=(ll)mx-1;
		l++;r--;
	}
	ll mxd=0;
	for (int i=1;i<N;i++) 
	{
		mxd=max(mxd,a[i]-a[i-1]);
	}
	return mxd;
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...