B - Soldier and Badges (CF546B) Codeforces Round #304 (Div. 2)
2015-06-18 17:10
716 查看
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 his n 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 by 1.
题意:给你n堆价值,要求得到每堆价值是独一无二的,问你往每堆加多少,最少加多少。
思路:(贪心)先排序,然后以第一个为基准,后面的不大于前面的,就加加;
转载请注明出处:寻找&星空の孩子
题目链接:http://codeforces.com/contest/546/problem/B
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 his n 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 by 1.
题意:给你n堆价值,要求得到每堆价值是独一无二的,问你往每堆加多少,最少加多少。
思路:(贪心)先排序,然后以第一个为基准,后面的不大于前面的,就加加;
转载请注明出处:寻找&星空の孩子
题目链接:http://codeforces.com/contest/546/problem/B
#include <iostream> #include <stdio.h> #include <string.h> #include <string> #include <stack> #include <queue> #include <map> #include <set> #include <vector> #include <math.h> #include <bitset> #include <list> #include <algorithm> #include <climits> using namespace std; #define lson 2*i #define rson 2*i+1 #define LS l,mid,lson #define RS mid+1,r,rson #define UP(i,x,y) for(i=x;i<=y;i++) #define DOWN(i,x,y) for(i=x;i>=y;i--) #define MEM(a,x) memset(a,x,sizeof(a)) #define W(a) while(a) #define gcd(a,b) __gcd(a,b) #define LL long long #define N 5000005 #define INF 0x3f3f3f3f #define EXP 1e-8 #define lowbit(x) (x&-x) const int mod = 1e9+7; #define LL __int64 int n,a[3005]; int main() { int i,j,ans; while(~scanf("%d",&n)) { ans = 0; int sum1 = 0,sum2 = 0; for(i = 1; i<=n; i++) { scanf("%d",&a[i]); sum1+=a[i]; } sort(a+1,a+1+n); sum2 = a[1]; for(i = 2; i<=n; i++) { if(a[i] == a[i-1]) a[i]++; else if(a[i]<a[i-1]) a[i] +=(a[i-1]-a[i])+1; sum2+=a[i]; } printf("%d\n",sum2-sum1); } return 0; }
相关文章推荐
- 离散事件模拟-银行管理 分类: 栈和队列 2015-06-18 17:10 21人阅读 评论(0) 收藏
- Web性能优化系列:10个JavaScript性能提升的技巧
- 用VBox虚拟机安装Android 屏幕90度翻转竖屏设置
- Bash基础
- App的设计评价问题
- 使用ECharts碰到的一些问题和解决方法
- linux基础命令
- UILable文字中间添加删除线
- Linux下apache图片服务器+tomcat应用服务器集成
- 双向队列
- STL向量容器vector
- 安装完office2010 后 在组件服务里DCOM配置中找不到的解决方案
- Windows下JavaScript环境搭建
- UI设计:ios 动效设计
- Unique Binary Search Trees
- 双向队列 分类: 栈和队列 2015-06-18 17:09 12人阅读 评论(0) 收藏
- 【转载】PyQt QSetting保存设置
- traceme 爆破小记
- Oracle 性能报告 AWR
- 通过OutLook 2010 找回误删除的邮件