#include<bits/stdc++.h>
//#include "gap.h"
using namespace std;
using ll =long long;
ll a[1000005], n;
void MinMax(ll s, ll t, ll&mn, ll&mx) {
mn = lower_bound(a + 1, a + n + 1, s) - a;
if ( mn == n + 1) {
mn = -1;
mx = -1;
return ;
}
mn = a[mn];
mx = upper_bound(a + 1, a + n + 1, t) - a;
mx --;
mx = a[mx];
}
ll Sub1(ll N) {
ll b[N + 2],ans, lo1, hi1, lo, hi, l, r;
l = 1;
r = N;
lo = 0;
hi = 1e18;
while ( l <= r) {
MinMax(lo, hi, lo1, hi1);
if (lo1 == -1) break;
b[l] = lo1;
b[r] = hi1;
lo = lo1 + 1;
hi = hi1 - 1;
l ++;
r --;
}
ans = 0;
for (int i = 2; i <= N; i ++) {
ans =max(ans, b[i] - b[i - 1]);
}
return ans;
}
ll Sub2(ll N) {
return N;
}
long long findGap(int T, int N) {
if ( T == 1) {
return Sub1(N);
}
else return Sub2(N);
}
ll inp() {
cin >> n;
for (int i = 1; i <= n; i ++) cin >> a[i];
}
int main() {
inp();
cout << findGap(1, n) << endl;
}
Compilation message
gap.cpp: In function 'll inp()':
gap.cpp:52:1: warning: no return statement in function returning non-void [-Wreturn-type]
52 | }
| ^
/usr/bin/ld: /tmp/cczTwIRx.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/cc1zcSmx.o:gap.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status