Submission #242070

#TimeUsernameProblemLanguageResultExecution timeMemory
242070michaoGap (APIO16_gap)C++14
100 / 100
77 ms3360 KiB
#include <bits/stdc++.h>
#include "gap.h"
using namespace std;
typedef long long ll;
#define pb push_back
int n;
ll mini,maxi;
vector<ll>pom,answer;
long long findGap(int t, int N)
{
	n=N;
	ll ans=0;
	ll ip=-1,ik=1e19;
	if (t==1)
	{
		while ((int)answer.size()+(int)pom.size()<n)
		{
			ip++,ik--;
			MinMax(ip,ik,&ip,&ik);
			answer.pb(ip);
			pom.pb(ik);
		}
	}
	else
	{
		MinMax(ip,ik,&ip,&ik);
		answer.pb(ip),pom.pb(ik);
		ll gap=(ik-ip+1)/n+1;
		for (ll i=ip;i+1<ik;i+=gap)
		{
			ll news=min(ik-1,i+gap);
			MinMax(i+1,news,&mini,&maxi);
			if (mini!=-1)answer.pb(mini);
			if (maxi!=-1)answer.pb(maxi);
		}
	}
	while ((int)pom.size()>0)answer.pb(pom.back()),pom.pop_back();
	for (int i=0;i<(int)answer.size()-1;i++)ans=max(ans,answer[i+1]-answer[i]);
	return ans;
}

Compilation message (stderr)

gap.cpp: In function 'long long int findGap(int, int)':
gap.cpp:13:14: warning: overflow in implicit constant conversion [-Woverflow]
  ll ip=-1,ik=1e19;
              ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...