Codeforces Round #304 (Div. 2) B
2015-05-30 20:48
393 查看
B. Soldier and Badges
time limit per test 3 seconds memory limit per test 256 megabytes
input standard input output standard output
Colonel has n badges. He wants to give one badge to every of hisn soldiers. Each badge has a coolness factor, which shows how much it's owner
reached. Coolness factor can be increased by one for the cost of one coin.
For every pair of soldiers one of them should get a badge with strictly higher factor than the second one. Exact values of their factors aren't important, they just need to have distinct factors.
Colonel knows, which soldier is supposed to get which badge initially, but there is a problem. Some of badges may have the same factor of coolness. Help him and calculate how much money has to be paid for making all badges have different factors of coolness.
Input
First line of input consists of one integer n (1 ≤ n ≤ 3000).
Next line consists of n integers ai (1 ≤ ai ≤ n),
which stand for coolness factor of each badge.
Output
Output single integer — minimum amount of coins the colonel has to pay.
Sample test(s)
Input
Output
Input
Output
Note
In first sample test we can increase factor of first badge by 1.
In second sample test we can increase factors of the second and the third badge by1.
题意:其实就是问你最少加几个1,使得这串数字各不相同。
思路:sort一下就好,然后把相同的+1,直到变成不同的数为止,水题。
代码如下:
time limit per test 3 seconds memory limit per test 256 megabytes
input standard input output standard output
Colonel has n badges. He wants to give one badge to every of hisn soldiers. Each badge has a coolness factor, which shows how much it's owner
reached. Coolness factor can be increased by one for the cost of one coin.
For every pair of soldiers one of them should get a badge with strictly higher factor than the second one. Exact values of their factors aren't important, they just need to have distinct factors.
Colonel knows, which soldier is supposed to get which badge initially, but there is a problem. Some of badges may have the same factor of coolness. Help him and calculate how much money has to be paid for making all badges have different factors of coolness.
Input
First line of input consists of one integer n (1 ≤ n ≤ 3000).
Next line consists of n integers ai (1 ≤ ai ≤ n),
which stand for coolness factor of each badge.
Output
Output single integer — minimum amount of coins the colonel has to pay.
Sample test(s)
Input
4 1 3 1 4
Output
1
Input
5 1 2 3 2 5
Output
2
Note
In first sample test we can increase factor of first badge by 1.
In second sample test we can increase factors of the second and the third badge by1.
题意:其实就是问你最少加几个1,使得这串数字各不相同。
思路:sort一下就好,然后把相同的+1,直到变成不同的数为止,水题。
代码如下:
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; const int N = 3005; int a , b ; int main() { int n = 0; while(~scanf("%d", &n)) { for(int i = 1; i <= n; i++) { scanf("%d", &a[i]); } sort(a+1, a+n+1); int ans = 0; for(int i = 1; i <= n; i++) { for(int j = i+1; j <= n; j++) { if(a[i] == a[j]) { ans++; a[j]++; } } } printf("%d\n", ans); } return 0; }
相关文章推荐
- 为什么程序员不擅长估算时间
- 项目经理两天要做的事
- xshell xftp 5系列
- 提高第38课时,实践1,用命令行运行程序
- 八大排序算法
- ubantu下修改mysql默认编码格式为utf8编码
- spy 26 When the first input is a message identifier, the second input must be a string.错误
- 百度之星 矩形面积(最小矩形覆盖)
- 喝一杯咖啡真难——我的caffe在ubuntu14.04下安装配置,改错,换包记录
- VMware 11安装Mac OS X 10.10
- JS成员函数声明位置优化
- 任意实数范围内的随机数生成原理图解
- [Node.js] DSL in action
- 利用RANSAC算法筛选SIFT特征匹配
- 客运综合管理系统项目—售票管理(退票)
- jquery加载解析XML文件
- 归并排序
- 关于资源增量更新策略
- MVP for Android
- AOP之代理模式(二)