이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "gap.h"
#include<bits/stdc++.h>
#define pb push_back
#define x first
#define y second
#define all(a) (a).begin(), (a).end()
using namespace std;
typedef long long ll;
typedef pair<int, int> ii;
ll findGap(int T, int N) {
if(T == 1) {
ll lo = 0, hi = 1e18, mini = 0;
vector<ll> a;
int sz = N;
while(hi - lo >= mini) {
MinMax(lo, hi, &lo, &hi);
mini = max(mini, (hi - lo) / ((ll)sz - 1));
a.pb(lo), a.pb(hi);
sz -= 2;
if(lo == hi) sz++;
lo++, hi--;
}
sort(all(a));
ll ans = 0;
for(int i = 1;i < (int)a.size();i++)
ans = max(ans, a[i] - a[i - 1]);
return ans;
}
if(T == 2) {
ll lo = 0, hi = 1e18;
MinMax(lo, hi, &lo, &hi);
ll min_gap = (hi - lo) / ((ll)N - 1);
ll ans = 0;
ll x = lo + 1, lst = lo, l, r;
while(x < hi) {
MinMax(x, x + min_gap, &l, &r);
if(l != -1)
ans = max(ans, l - lst);
x += min_gap + 1;
if(r != -1) lst = r;
}
if(x == hi) ans = max(ans, hi - lst);
return ans;
}
}
컴파일 시 표준 에러 (stderr) 메시지
gap.cpp: In function 'll findGap(int, int)':
gap.cpp:50:1: warning: control reaches end of non-void function [-Wreturn-type]
50 | }
| ^
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |