璟雯院

珺璟如晔,雯华若锦

用户工具

站点工具


icpc:problems:usaco21open_acowdemia_i_b
problems
名称Acowdemia I B
题目编号USACO21OPEN_B1
题目链接zl.zhili-edu.com/…
来源USACO
算法分类枚举, 入门_循环
难易程度容易

Acowdemia I B

想法

排序后观察$c_i$与已枚举的个数关系,当出现$c_i$小时,对$c_i$相同的元素进行增加,当增加后还不满足条件,说明已经找到最大的h。

代码实现

#include<cstdio>
#include<algorithm>
using namespace std;
 
const int N = 1e5 + 10;
int line[N];
 
int main() {
	int n, l, h = 0;
	scanf("%d %d", &n, &l);
	for (int i = 1; i <= n; ++i)
		scanf("%d", &line[i]);
	sort(line+1, line+1+n);
 
	for (int i = n; i >= 1; --i) {
		if(line[i] < (n - i + 1)) {
			if(line[i] + 1 < (n - i + 1))
				break;
			for(int j = i+1; j <= n; j++) {
				if(line[j] == line[j-1]) {
					l--;
					line[j-1]++;
				}
				else
					break;
			}
			if(l <= 0)
				break;
			h = n - i + 1;
		}
		else
			h = n - i + 1;
	}
 
	printf("%d", h);
 
	return 0;
}
/app/www/public/data/pages/icpc/problems/usaco21open_acowdemia_i_b.txt · 最后更改: 2023/06/28 05:26 由 温婕莺