Submission #102800

# Submission time Handle Problem Language Result Execution time Memory
102800 2019-03-27T15:36:32 Z CorneliuVadimTudor Gap (APIO16_gap) C++14
53.5084 / 100
90 ms 5292 KB
#include <bits/stdc++.h>

#include "gap.h"

std::vector <long long> V;
long long findGap(int T, int N){
    long long A, B;
    MinMax(0, 1000000000000000000LL, &A, &B);
    long long Dmax = B - A;
    long long dist = ceil(1.0 * Dmax / N);
    long long st;
    for(st = A; st + dist <= B; st += dist){
        long long a, b;
        MinMax(st, st + dist - 1, &a, &b);
        V.push_back(a);
        V.push_back(b);
    }
    std::sort(V.begin(), V.end());
    long long a, b;
    MinMax(st, B, &a, &b);
    V.push_back(a);
    V.push_back(b);

    long long maxx = 0;
    for(int i = 0; i + 1 < V.size(); i++)
        if(V[i] != -1 && V[i + 1] - V[i] > maxx) maxx = V[i + 1] - V[i];
    return maxx;
};

/*static void my_assert(int k){ if (!k) exit(1); }

static int subtask_num, N;
static long long A[100001];
static long long call_count;
void MinMax(long long s, long long t, long long *mn, long long *mx)
{
	int lo = 1, hi = N, left = N+1, right = 0;
	my_assert(s <= t && mn != NULL && mx != NULL);
	while (lo <= hi){
		int mid = (lo+hi)>>1;
		if (A[mid] >= s) hi = mid - 1, left = mid;
		else lo = mid + 1;
	}
	lo = 1, hi = N;
	while (lo <= hi){
		int mid = (lo+hi)>>1;
		if (A[mid] <= t) lo = mid + 1, right = mid;
		else hi = mid - 1;
	}
	if (left > right) *mn = *mx = -1;
	else{
		*mn = A[left];
		*mx = A[right];
	}
	if (subtask_num == 1) call_count++;
	else if (subtask_num == 2) call_count += right-left+2;
}

int main()
{
	FILE *in = stdin, *out = stdout;
	my_assert(2 == fscanf(in, "%d%d", &subtask_num, &N));
	my_assert(1 <= subtask_num && subtask_num <= 2);
	my_assert(2 <= N && N <= 100000);
	for (int i=1;i<=N;i++) my_assert(1 == fscanf(in, "%lld", A+i));
	for (int i=1;i<N;i++) my_assert(A[i] < A[i+1]);
	fprintf(out, "%lld\n", findGap(subtask_num, N));
	fprintf(out, "%lld\n", call_count);
}*/

Compilation message

gap.cpp: In function 'long long int findGap(int, int)':
gap.cpp:25:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i = 0; i + 1 < V.size(); i++)
                    ~~~~~~^~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 384 KB Output isn't correct
2 Incorrect 2 ms 384 KB Output isn't correct
3 Incorrect 2 ms 384 KB Output isn't correct
4 Incorrect 2 ms 384 KB Output isn't correct
5 Incorrect 2 ms 384 KB Output isn't correct
6 Incorrect 2 ms 384 KB Output isn't correct
7 Incorrect 2 ms 384 KB Output isn't correct
8 Incorrect 3 ms 384 KB Output isn't correct
9 Incorrect 3 ms 384 KB Output isn't correct
10 Incorrect 3 ms 384 KB Output isn't correct
11 Incorrect 4 ms 512 KB Output isn't correct
12 Incorrect 3 ms 384 KB Output isn't correct
13 Incorrect 4 ms 384 KB Output isn't correct
14 Incorrect 3 ms 384 KB Output isn't correct
15 Incorrect 3 ms 384 KB Output isn't correct
16 Incorrect 19 ms 1660 KB Output isn't correct
17 Incorrect 25 ms 1660 KB Output isn't correct
18 Incorrect 20 ms 1660 KB Output isn't correct
19 Incorrect 20 ms 1660 KB Output isn't correct
20 Incorrect 11 ms 1276 KB Output isn't correct
21 Incorrect 82 ms 5228 KB Output isn't correct
22 Incorrect 71 ms 5096 KB Output isn't correct
23 Incorrect 80 ms 5292 KB Output isn't correct
24 Incorrect 78 ms 5100 KB Output isn't correct
25 Incorrect 71 ms 4460 KB Output isn't correct
26 Incorrect 89 ms 5096 KB Output isn't correct
27 Incorrect 86 ms 5228 KB Output isn't correct
28 Incorrect 83 ms 5108 KB Output isn't correct
29 Incorrect 90 ms 5200 KB Output isn't correct
30 Incorrect 48 ms 4128 KB Output isn't correct
31 Incorrect 2 ms 404 KB Output isn't correct
32 Incorrect 2 ms 384 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Partially correct 2 ms 384 KB Partially correct
2 Partially correct 3 ms 384 KB Partially correct
3 Partially correct 2 ms 384 KB Partially correct
4 Partially correct 2 ms 384 KB Partially correct
5 Partially correct 2 ms 384 KB Partially correct
6 Partially correct 3 ms 384 KB Partially correct
7 Partially correct 3 ms 384 KB Partially correct
8 Partially correct 3 ms 384 KB Partially correct
9 Partially correct 3 ms 384 KB Partially correct
10 Partially correct 3 ms 384 KB Partially correct
11 Partially correct 3 ms 384 KB Partially correct
12 Partially correct 4 ms 388 KB Partially correct
13 Partially correct 3 ms 384 KB Partially correct
14 Partially correct 4 ms 384 KB Partially correct
15 Partially correct 3 ms 384 KB Partially correct
16 Partially correct 19 ms 1660 KB Partially correct
17 Partially correct 24 ms 1788 KB Partially correct
18 Partially correct 20 ms 1660 KB Partially correct
19 Partially correct 19 ms 1660 KB Partially correct
20 Correct 11 ms 1276 KB Output is correct
21 Partially correct 79 ms 5228 KB Partially correct
22 Partially correct 72 ms 5100 KB Partially correct
23 Partially correct 82 ms 5092 KB Partially correct
24 Partially correct 77 ms 5228 KB Partially correct
25 Partially correct 70 ms 4560 KB Partially correct
26 Partially correct 75 ms 5100 KB Partially correct
27 Partially correct 75 ms 5124 KB Partially correct
28 Partially correct 74 ms 5224 KB Partially correct
29 Partially correct 77 ms 5100 KB Partially correct
30 Correct 40 ms 3948 KB Output is correct
31 Partially correct 2 ms 384 KB Partially correct
32 Partially correct 2 ms 384 KB Partially correct