C. New Year Ratings Change
来源:互联网 发布:番禺网络推广 编辑:程序博客网 时间:2024/06/06 06:47
One very well-known internet resource site (let's call it X) has come up with a New Year adventure. Specifically, they decided to give ratings to all visitors.
There are n users on the site, for each user we know the rating value he wants to get as a New Year Present. We know that user iwants to get at least ai rating units as a present.
The X site is administered by very creative and thrifty people. On the one hand, they want to give distinct ratings and on the other hand, the total sum of the ratings in the present must be as small as possible.
Help site X cope with the challenging task of rating distribution. Find the optimal distribution.
The first line contains integer n (1 ≤ n ≤ 3·105) — the number of users on the site. The next line contains integer sequencea1, a2, ..., an (1 ≤ ai ≤ 109).
Print a sequence of integers b1, b2, ..., bn. Number bi means that user i gets bi of rating as a present. The printed sequence must meet the problem conditions.
If there are multiple optimal solutions, print any of them.
35 1 1
5 1 2
11000000000
1000000000
解题说明:题目的意思是给定一列数得到新的一列数,新的这列数中每个数字都不同并且都不小于原数列对应位置上的每个数字。做法是采用贪心思想,先对原数列按照从小到大的位置进行排序,并且记录下原来的位置,然后确保新的数列中对应位置上的数为原数列当前数字和未使用过的1-n这些数中最小数字的最大值。
#include<iostream>#include<cstdio>#include<cmath>#include<cstdlib>#include <algorithm>using namespace std;int n, i, now, a[310000], tx[310000], ans[310000];bool cmp(int x, int y) {return a[x] < a[y];}int main() {scanf("%d", &n);for (i = 1; i <=n; i++){scanf("%d", &a[i]);tx[i] = i;}sort(tx + 1, tx + n + 1, cmp);for (i = 1; i <= n; i++) {now = max(now + 1, a[tx[i]]);ans[tx[i]] = now;}for (i = 1; i <= n; i++){printf("%d ", ans[i]);}printf("\n");return 0;}
- C. New Year Ratings Change
- C. New Year Ratings Change
- codeforces-379C. New Year Ratings Change
- 379C - New Year Ratings Change 贪心
- Codeforces-379C-New Year Ratings Change
- Codeforces 379C New Year Ratings Change(模拟)
- codeforce 379C New Year Ratings Change 题解
- CodeForces 379C -- D - New Year Ratings Change
- codeforces 379CNew Year Ratings Change(MAP的用法)
- C. New Year Book Reading
- C. New Year Book Reading
- C. New Year and Domino
- Codeforces 500C New Year Book Reading
- CodeForces 140C - New Year Snowmen
- C. New Year Snowmen --优先队列
- Codeforces 500C New Year Book Reading
- CF 500C New Year Book Reading
- codeforces-611C-New Year and Domino
- vlc 调用live555的源码分析--vlc v2.1.1版本
- Ext 4.2 树节点拖拽排序功能
- 单文档,文档与视图
- STL的内存分配器
- 计算后缀表达式的值(栈应用二)
- C. New Year Ratings Change
- xmlhttp.readyState的状态问题
- Why not Stop her?
- Androi blog
- InnoDB和MyISAM区别
- stringbuffer什么都没添加的话,输出是空串
- Hadoop-2.2.0在Windows环境下Native Lib的问题
- 传智播客“家庭盛会” 温暖2013----传智播客2014年年会精彩瞬间
- android面试题:如何退出Activity?