B. Making a String
2016-03-12 00:34
302 查看
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
You are given an alphabet consisting of n letters, your task is to make a string of the maximum possible length so that the following
conditions are satisfied:
the i-th letter occurs in the string no more than ai times;
the number of occurrences of each letter in the string must be distinct for all the letters that occurred in the string at least once.
Input
The first line of the input contains a single integer n (2 ≤ n ≤ 26) —
the number of letters in the alphabet.
The next line contains n integers ai (1 ≤ ai ≤ 109) — i-th
of these integers gives the limitation on the number of occurrences of the i-th character in the string.
Output
Print a single integer — the maximum length of the string that meets all the requirements.
Sample test(s)
input
output
input
output
Note
For convenience let's consider an alphabet consisting of three letters: "a", "b",
"c". In the first sample, some of the optimal strings are: "cccaabbccbb",
"aabcbcbcbcb". In the second sample some of the optimal strings are: "acc",
"cbc".
题意是说,给出n个字母和每个字母使用的最大数目,要求每个字母使用次数都不相同的情况下使得使用的字母数达到最大值、
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
You are given an alphabet consisting of n letters, your task is to make a string of the maximum possible length so that the following
conditions are satisfied:
the i-th letter occurs in the string no more than ai times;
the number of occurrences of each letter in the string must be distinct for all the letters that occurred in the string at least once.
Input
The first line of the input contains a single integer n (2 ≤ n ≤ 26) —
the number of letters in the alphabet.
The next line contains n integers ai (1 ≤ ai ≤ 109) — i-th
of these integers gives the limitation on the number of occurrences of the i-th character in the string.
Output
Print a single integer — the maximum length of the string that meets all the requirements.
Sample test(s)
input
3 2 5 5
output
11
input
3 1 1 2
output
3
Note
For convenience let's consider an alphabet consisting of three letters: "a", "b",
"c". In the first sample, some of the optimal strings are: "cccaabbccbb",
"aabcbcbcbcb". In the second sample some of the optimal strings are: "acc",
"cbc".
题意是说,给出n个字母和每个字母使用的最大数目,要求每个字母使用次数都不相同的情况下使得使用的字母数达到最大值、
#include<iostream> #include<cstdio> #include<algorithm> #include<cstring> using namespace std; const int maxn =30; int n,a[maxn]; int main() { cin>>n; for(int i=0;i<n;i++){ cin>>a[i]; } sort(a,a+n); int ans=a[n-1]; for(int i=n-2;i>=0;i--){ while(a[i]>=a[i+1]){ a[i]--; } ans+=max(a[i],0); } cout<<ans<<endl; return 0; }
相关文章推荐
- Android开发中实现https校验
- Java基础操作(一){DOS打开方式、DOS的命令简单操作}
- Android studio -VSN 使用笔记
- 242. Valid Anagram
- 16. 3Sum Closest
- 课本235页2-3题
- mysql root密码
- 代码重构思考
- [PHP]利用XAMPP搭建本地服务器, 然后利用iOS客户端上传数据到本地服务器中(三. PHP端代码实现)
- kvm学习篇
- iOS学习 UITableViewCell 三种定制方法
- 在Linux CentOS 6.5上安装python2.7.9
- 包装&工具类
- FTP服务器的安装,配置,虚拟用户的创建
- 虚拟存储器作为存储管理工具
- 计算机网络相关知识
- TCP的三次握手和四次撒手
- java 多线程实现生产者消费者模型
- JS中创建函数的三种方式及区别
- 关于阿里云centos 2.6下手机表情输入后无法保存到mysql数据库的问题调研及mysql版本从5.1升级到5.7的全过程纪要