Submission #107817

#TimeUsernameProblemLanguageResultExecution timeMemory
107817Noam527Gap (APIO16_gap)C++17
59.04 / 100
102 ms4360 KiB
#include <bits/stdc++.h>
#define CHECK cout << "ok" << endl
#define finish(x) return cout << x << endl, 0
typedef long long ll;
typedef long double ldb;
const int md = 1e9 + 7;
const ll inf = 1e18;
const int OO = 1;
const int OOO = 1;
using namespace std;

void MinMax(ll s, ll t, ll *mn, ll *mx);

ll findGap(int t, int n) {
	ll lo, hi, a, b;
	vector<ll> pos;
	MinMax(0, inf, &lo, &hi);
	ll d = (hi - lo) / (n - 1);
	pos.push_back(lo);
	for (ll i = lo + 1; i < hi; i += d) {
		MinMax(i, i + d - 1, &a, &b);
		if (a != -1) {
			pos.push_back(a);
			pos.push_back(b);
		}
	}
	if (pos.back() != hi) pos.push_back(hi);
	ll rtn = pos[1] - pos[0];
	for (int i = 2; i < pos.size(); i++)
		rtn = max(rtn, pos[i] - pos[i - 1]);
	return rtn;
}
/*
int main() {
	ll ans = findGap(0, 4);
	cout << "my ans " << ans << '\n';
}
*/

Compilation message (stderr)

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