序列处理
/*
给定一个长度为 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;
}