题解 CF546B Soldier and Badges

CF546B Soldier and Badges

简单的贪心qwq

排个序,如果当前数与之前的数相重,已经用过,则加到一个之前没有用过的数

#include<cstdio>
#include<algorithm>
using namespace std;
int n,ans,a[3005];
int main() {
	scanf("%d",&n);
	for (int i=0; i<n; i++) scanf("%d",&a[i]);
	sort(a,a+n);
	for (int i=1,last=a[0]; i<n; i++)
		if (a[i]>last) last=a[i];
		else ans+=last-a[i]+1,last++;
	printf("%d",ans);
}
原文地址:https://www.cnblogs.com/Randolph68706/p/11301580.html