This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <iostream>
#include <cstdio>
#include <vector>
#include <algorithm>
#include "gap.h"
using namespace std;
long long findGap(int t, int n)
{
vector<long long> ve;
if (t == 1)
{
long long le = 0, ri = 1E18;
while (le <= ri)
{
long long mi, ma;
MinMax(le, ri, &mi, &ma);
if (mi > -1)
{
ve.push_back(mi);
if (ma != mi)
ve.push_back(ma);
}
le = mi + 1; ri = ma - 1;
}
}
if (t == 2)
{
long long le, ri;
MinMax(0, 1E18, &le, &ri);
ve.push_back(le++); ve.push_back(ri--);
long long ga = (ri - le + 1) / (n - 1), mo = (ri - le + 1) % (n - 1);
for (int i = 1; i < n; i++)
{
long long mi, ma;
MinMax(le, le + ga + (i <= mo) - 1, &mi, &ma);
le += ga + (i <= mo);
if (mi > -1)
{
ve.push_back(mi);
if (ma != mi)
ve.push_back(ma);
}
}
}
sort(ve.begin(), ve.end());
long long ans = 0;
for (int i = 1; i < ve.size(); i++)
ans = max(ans, ve[i] - ve[i - 1]);
return ans;
}
Compilation message (stderr)
gap.cpp: In function 'long long int findGap(int, int)':
gap.cpp:48:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int i = 1; i < ve.size(); i++)
~~^~~~~~~~~~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |