大佬们看看哪里有问题啊,80分
查看原帖
大佬们看看哪里有问题啊,80分
412257
q3q4q5楼主2021/1/28 22:08

3、8过不了,WA

#include<iostream>
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
#include<ctype.h>
#include<algorithm>
#include<list>

using namespace std;

int h[150000];

int compar(const void* a, const void* b)
{
	return *(int*)a - *(int*)b;
}

int main()
{
	int L, N, K;
	cin >> L >> N >> K;
	int a = 0, b = 0;
	for (int i = 0; i < N; i++)
	{
		cin >> a;
		h[i] = a - b;
		b = a;
	}
	h[N] = L - b;
	qsort(h, N + 1, 4, compar);
	int l = 0, r = h[N], mid = (l + r + 1) / 2;
	int ans = mid;
	do {
		int k = 0;
		for (int i = N; h[i] >= ans && i>=0; i--)
		{
			k += h[i] / ans - ((h[i] % ans == 0) ? 1 : 0);
		}
		if (k > K) {
			l = mid;
			mid = (r + l) / 2;
		}
		else {
			r = mid;
			mid = (r + l + 1) / 2;
		}
		ans = (r + l + 1) / 2;
	} while (l + 1 < r);
	cout << ans;
}
2021/1/28 22:08
加载中...