给定一个长度为 nn 的整数序列 a1,a2,…,ana1,a2,…,an。
我们可以对该序列进行修改操作,每次操作选中其中一个元素,并使其增加 11。
现在,请你计算要使得序列中的元素各不相同,至少需要进行多少次操作。
输入格式
第一行包含整数 nn。
第二行包含 nn 个整数 a1,a2,…,ana1,a2,…,an。
输出格式
一个整数,表示所需的最少操作次数。
数据范围
前 66 个测试点满足 1≤n≤101≤n≤10。
所有测试点满足 1≤n≤30001≤n≤3000,1≤ai≤n1≤ai≤n。
输入样例1:
4
1 3 1 4
输出样例1:
1
输入样例2:
5
1 2 3 2 5
输出样例2:
2
思路:进行快排,在进行比较,相等加1,一直循环直到无相同数,输出次数
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
// 请在此输入您的代码
int n,m=0;
cin>>n;
int a[n];
for(int i=0;i<n;i++)
cin>>a[i];
while(1)
{
int t=0;
sort(a,a+n);
for(int i=0;i<n;i++)
{
if(a[i]==a[i+1])
{
m++;
t=1;
a[i+1]++;
}
}
if(t==0)
break;
}
cout<<m;
return 0;
}