Submission #44511

#TimeUsernameProblemLanguageResultExecution timeMemory
44511faustaadpGap (APIO16_gap)C++17
17.68 / 100
118 ms2296 KiB
#include "gap.h"
#include<bits/stdc++.h>
#define ll long long
#define pb push_back
#define mp make_pair
#define fi first
#define se second
using namespace std;
ll ma,u1,u2,ce,L1,R1,L2,R2,L,R;
priority_queue<pair<ll,pair<ll,ll> > >pq;
long long findGap(int T, int N)
{
	ma=0;
	MinMax(0,(ll)1e18,&L,&R);
	pq.push(mp(R-L,mp(L,R)));
	while(!pq.empty())
	{
		u1=pq.top().se.fi;
		u2=pq.top().se.se;
		pq.pop();
		ce=(u1+u2)/2;
		if(u2-u1<=ma)
			continue;
		MinMax(u1,ce,&L1,&R1);
		if(R1!=u2)	
			MinMax(ce+1,u2,&L2,&R2);
		ma=max(ma,L2-R1);
		if(R1-L1>ma)
			pq.push(mp(R1-L1,mp(L1,R1)));
		if(R2-L2>ma)
			pq.push(mp(R2-L2,mp(L2,R2)));
	}
	return ma;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...