Submission #366874

# Submission time Handle Problem Language Result Execution time Memory
366874 2021-02-15T14:52:30 Z MODDI Watching (JOI13_watching) C++14
100 / 100
226 ms 16236 KB
#include <bits/stdc++.h>
using namespace std;
int n, p, q;
int D[2020][2020], arr[2020];
bool check(int w)
{
	if (w <= 0) return false;
 
	int i,j=1,k=1,l;
	for (i=1;i<=n;i++){
		while (arr[i] - arr[j] >= w) j++;
		while (arr[i] - arr[k] >= w * 2) k++;
		for (l=0;l<=q;l++) D[i][l] = D[j-1][l] + 1;
		for (l=0;l<=q;l++){
			if (D[i][l+1] > D[k-1][l])
				D[i][l+1] = D[k-1][l];
		}
	}
 
	for (l=0;l<=q;l++) if (D[n][l] <= p) return true;
	return false;
}
int main(){
	cin>>n>>p>>q;
	for(int i = 1; i <=n; i++){
		cin>>arr[i];
	}
	sort(arr + 1, arr + n + 1);
	if(n <= p + q)
		cout<<1<<endl;
	else{
		int l = 1, r = 1000000000, mid;
		while (l < r){
			mid = (l + r) / 2;
			if (check(mid)) r = mid - 1;
			else l = mid + 1;
		}
		while(check(mid)) mid--;
		while(!check(mid))	mid++;
			
		cout<<mid<<endl;
		return 0;
	}
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 748 KB Output is correct
2 Correct 1 ms 384 KB Output is correct
3 Correct 1 ms 364 KB Output is correct
4 Correct 1 ms 364 KB Output is correct
5 Correct 1 ms 364 KB Output is correct
6 Correct 1 ms 364 KB Output is correct
7 Correct 1 ms 748 KB Output is correct
8 Correct 1 ms 748 KB Output is correct
9 Correct 1 ms 748 KB Output is correct
10 Correct 1 ms 748 KB Output is correct
11 Correct 1 ms 748 KB Output is correct
12 Correct 1 ms 748 KB Output is correct
13 Correct 1 ms 748 KB Output is correct
14 Correct 1 ms 748 KB Output is correct
15 Correct 1 ms 748 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 7 ms 8428 KB Output is correct
2 Correct 1 ms 380 KB Output is correct
3 Correct 2 ms 364 KB Output is correct
4 Correct 2 ms 364 KB Output is correct
5 Correct 1 ms 364 KB Output is correct
6 Correct 1 ms 364 KB Output is correct
7 Correct 9 ms 8428 KB Output is correct
8 Correct 96 ms 14188 KB Output is correct
9 Correct 25 ms 9324 KB Output is correct
10 Correct 19 ms 9068 KB Output is correct
11 Correct 226 ms 16236 KB Output is correct
12 Correct 123 ms 15980 KB Output is correct
13 Correct 12 ms 8556 KB Output is correct
14 Correct 9 ms 8428 KB Output is correct
15 Correct 10 ms 8556 KB Output is correct