Submission #262036

#TimeUsernameProblemLanguageResultExecution timeMemory
262036SaboonGap (APIO16_gap)C++14
100 / 100
79 ms3308 KiB
#include "gap.h"
#include<bits/stdc++.h>

using namespace std;
typedef long long ll;


long long findGap(int T, int n){
	ll lo = 0, hi = 1'000'000'000'000'000'000LL;
	if (T == 1){
		int cnt = 0;
		vector<ll> a;
		while (hi > lo){
			ll mn, mx;
			cnt ++;
			if (cnt > (n+1)/2)
				break;
			MinMax(lo, hi, &mn, &mx);
			if (mn == -1)
				break;
			a.push_back(mn);
			a.push_back(mx);
			lo = mn + 1, hi = mx - 1;
		}
		sort(a.begin(), a.end());
		ll answer = 0;
		for (int i = 1; i < a.size(); i++)
			answer = max(answer, a[i]-a[i-1]);
		return answer;
	}
	ll mn, mx;
	MinMax(lo, hi, &mn, &mx);
	ll t = (mx-mn+n-2) / (n-1);
	vector<ll> a;
	lo = mn, hi = mx;
	for (ll i = lo; i <= hi; i += t+1){
		MinMax(i, i+t, &mn, &mx);
		if (mn == -1)
			continue;
		a.push_back(mn);
		a.push_back(mx);
	}
	ll answer = 0;
	for (int i = 1; i < a.size(); i++)
		answer = max(answer, a[i]-a[i-1]);
	return answer;
}

Compilation message (stderr)

gap.cpp: In function 'long long int findGap(int, int)':
gap.cpp:27:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for (int i = 1; i < a.size(); i++)
                   ~~^~~~~~~~~~
gap.cpp:44:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i = 1; i < a.size(); i++)
                  ~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...