# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
231303 | peijar | Gap (APIO16_gap) | C++17 | 0 ms | 0 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#include "gap.h"
using namespace std;
#define SZ(v) ((int)(v).size())
using ll = long long;
void MinMax(ll lo, ll up, ll &mn, ll &mx);
ll findGap(int sous_tache, int nb_elem)
{
ll smallest, biggest;
MinMax((ll)0, (ll)1e18, smallest, biggest);
ll delta = ceil( (long double)(biggest - smallest) / (nb_elem - 1));
vector<ll> sparse_elem;
for (ll k(0); k < nb_elem - 1; ++k)
{
ll l, r;
MinMax(smallest + k * delta, smallest + (k+1) * delta, l, r);
if (l != -1)
{
sparse_elem.push_back(l);
sparse_elem.push_back(r);
}
}
ll ans = delta;
for (int i(0); i + 1 < SZ(sparse_elem); ++i)
ans = max(ans, sparse_elem[i+1] - sparse_elem[i]);
return ans;
}