0
点赞
收藏
分享

微信扫一扫

2.27 算法练习

伊人幽梦 2022-02-27 阅读 75

序列处理

/*
给定一个长度为 n 的整数序列 a1,a2,…,an。

我们可以对该序列进行修改操作,每次操作选中其中一个元素,并使其增加 1。

现在,请你计算要使得序列中的元素各不相同,至少需要进行多少次操作。

输入格式
第一行包含整数 n。

第二行包含 n 个整数 a1,a2,…,an。

输出格式
一个整数,表示所需的最少操作次数。

数据范围
前 6 个测试点满足 1≤n≤10。
所有测试点满足 1≤n≤3000,1≤ai≤n。

输入样例1:
4
1 3 1 4
输出样例1:
1
输入样例2:
5
1 2 3 2 5
输出样例2:
2
*/

/*
排序,然后每次都跟前面一个比较 
*/

#include<iostream>
#include<algorithm>

using namespace std;

int main(){
	int n;
	cin>>n;
	const int N=3010;
	int a[N];
	for(int i=1;i<=n;i++)
		cin>>a[i];
	sort(a+1,a+1+n);
	int ans=0;
	for(int i=1;i<=n;i++){
		for(int j=i+1;j<=n;j++){
			if(a[i]==a[j]){
				a[j]++;	
				ans++;
			}	
		}
	} 
	cout<<ans; 
	return 0;
}


举报

相关推荐

2.22 算法练习

算法练习(2)

算法练习(3)

2.24 算法练习

基础算法练习

链表 -算法练习

算法题练习(一)

0 条评论