#include <bits/stdc++.h>
#include "gap.h"
using namespace std;
#define ll long long
ll findGap(int T, int N)
{
vector<ll> v(N);
ll maxDif = 0;
if (T == 1)
{
int p1 = 0, p2 = N - 1;
ll a = -1, b = 1LL * 1000 * 1000 * 1000 * 1000 * 1000 * 1000+ 1;
while (p1 <= p2)
{
ll c1, c2;
MinMax(a + 1, b - 1, &c1, &c2);
v[p1] = c1;
v[p2] = c2;
p1++; p2--;
a = c1; b = c2;
}
for (int i = 1; i < N; i++)
maxDif = max(maxDif, v[i] - v[i - 1]);
}
else
{
ll start, finish;
MinMax(0, 1LL * 1000 * 1000 * 1000 * 1000 * 1000 * 1000, &start, &finish);
while (start != finish)
{
ll p;
ll a, b;
if (maxDif == 0)
{
p = 1;
MinMax(start + 1, start + 1 + p, &a, &b);
while (b == -1)
{
p*=2;
if (start + 1 + p >= finish)
MinMax(start + 1, finish, &a, &b);
else
MinMax(start + 1, start + 1 + maxDif + p, &a, &b);
}
maxDif = max(maxDif, a - start);
start = b;
continue;
}
p = maxDif;
MinMax(start + 1, start + 1 + p, &a, &b);
while (b == -1)
{
p*=2;
if (start + 1 + p >= finish)
MinMax(start + 1, finish, &a, &b);
else
MinMax(start + 1, start + 1 + p, &a, &b);
}
maxDif = max(maxDif, a - start);
start = b;
}
}
return maxDif;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
344 KB |
Output is correct |
2 |
Correct |
0 ms |
2392 KB |
Output is correct |
3 |
Correct |
0 ms |
2392 KB |
Output is correct |
4 |
Correct |
0 ms |
2392 KB |
Output is correct |
5 |
Correct |
0 ms |
2392 KB |
Output is correct |
6 |
Correct |
0 ms |
2392 KB |
Output is correct |
7 |
Correct |
0 ms |
2392 KB |
Output is correct |
8 |
Correct |
1 ms |
2392 KB |
Output is correct |
9 |
Correct |
0 ms |
2392 KB |
Output is correct |
10 |
Correct |
0 ms |
2392 KB |
Output is correct |
11 |
Correct |
1 ms |
2392 KB |
Output is correct |
12 |
Correct |
1 ms |
2392 KB |
Output is correct |
13 |
Correct |
1 ms |
2392 KB |
Output is correct |
14 |
Correct |
1 ms |
2392 KB |
Output is correct |
15 |
Correct |
1 ms |
2392 KB |
Output is correct |
16 |
Correct |
7 ms |
2584 KB |
Output is correct |
17 |
Correct |
7 ms |
2588 KB |
Output is correct |
18 |
Correct |
7 ms |
2588 KB |
Output is correct |
19 |
Correct |
7 ms |
2752 KB |
Output is correct |
20 |
Correct |
6 ms |
2576 KB |
Output is correct |
21 |
Correct |
28 ms |
3788 KB |
Output is correct |
22 |
Correct |
28 ms |
3628 KB |
Output is correct |
23 |
Correct |
28 ms |
3620 KB |
Output is correct |
24 |
Correct |
33 ms |
3624 KB |
Output is correct |
25 |
Correct |
25 ms |
3604 KB |
Output is correct |
26 |
Correct |
30 ms |
3628 KB |
Output is correct |
27 |
Correct |
28 ms |
3620 KB |
Output is correct |
28 |
Correct |
28 ms |
3620 KB |
Output is correct |
29 |
Correct |
28 ms |
3624 KB |
Output is correct |
30 |
Correct |
23 ms |
3620 KB |
Output is correct |
31 |
Correct |
0 ms |
2392 KB |
Output is correct |
32 |
Correct |
0 ms |
2392 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Partially correct |
1 ms |
2392 KB |
Partially correct |
2 |
Partially correct |
0 ms |
2392 KB |
Partially correct |
3 |
Partially correct |
0 ms |
2392 KB |
Partially correct |
4 |
Partially correct |
1 ms |
2392 KB |
Partially correct |
5 |
Partially correct |
0 ms |
2392 KB |
Partially correct |
6 |
Correct |
1 ms |
2392 KB |
Output is correct |
7 |
Correct |
0 ms |
2392 KB |
Output is correct |
8 |
Correct |
1 ms |
2392 KB |
Output is correct |
9 |
Correct |
0 ms |
2392 KB |
Output is correct |
10 |
Correct |
0 ms |
2392 KB |
Output is correct |
11 |
Correct |
1 ms |
2392 KB |
Output is correct |
12 |
Correct |
1 ms |
2392 KB |
Output is correct |
13 |
Correct |
1 ms |
2492 KB |
Output is correct |
14 |
Correct |
1 ms |
2392 KB |
Output is correct |
15 |
Partially correct |
1 ms |
2392 KB |
Partially correct |
16 |
Correct |
5 ms |
2580 KB |
Output is correct |
17 |
Correct |
5 ms |
2584 KB |
Output is correct |
18 |
Correct |
5 ms |
2752 KB |
Output is correct |
19 |
Correct |
5 ms |
2584 KB |
Output is correct |
20 |
Correct |
4 ms |
2568 KB |
Output is correct |
21 |
Correct |
17 ms |
3624 KB |
Output is correct |
22 |
Correct |
19 ms |
3636 KB |
Output is correct |
23 |
Correct |
18 ms |
3624 KB |
Output is correct |
24 |
Correct |
18 ms |
3628 KB |
Output is correct |
25 |
Partially correct |
37 ms |
3616 KB |
Partially correct |
26 |
Correct |
18 ms |
3624 KB |
Output is correct |
27 |
Correct |
18 ms |
3628 KB |
Output is correct |
28 |
Correct |
18 ms |
3620 KB |
Output is correct |
29 |
Correct |
18 ms |
3632 KB |
Output is correct |
30 |
Correct |
15 ms |
3616 KB |
Output is correct |
31 |
Partially correct |
1 ms |
2392 KB |
Partially correct |
32 |
Correct |
0 ms |
2392 KB |
Output is correct |