【codeforces 651B - Beautiful Paintings 】 greedy(贪心)
2016-04-12 20:58
537 查看
B. Beautiful Paintings
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
There are n pictures delivered for the new exhibition. The i-th painting has beauty ai. We know that a visitor becomes happy every time he passes from a painting to a more beautiful one.
We are allowed to arranged pictures in any order. What is the maximum possible number of times the visitor may become happy while passing all pictures from first to last? In other words, we are allowed to rearrange elements of a in any order. What is the maximum possible number of indices i (1 ≤ i ≤ n - 1), such that ai + 1 > ai.
Input
The first line of the input contains integer n (1 ≤ n ≤ 1000) — the number of painting.
The second line contains the sequence a1, a2, …, an (1 ≤ ai ≤ 1000), where ai means the beauty of the i-th painting.
Output
Print one integer — the maximum possible number of neighbouring pairs, such that ai + 1 > ai, after the optimal rearrangement.
Examples
Input
5
20 30 10 50 40
Output
4
Input
4
200 100 100 200
Output
2
Note
In the first sample, the optimal order is: 10, 20, 30, 40, 50.
In the second sample, the optimal order is: 100, 200, 100, 200.
题意::游客在欣赏画时,通常会因为当前这幅画比前一幅画美丽而获得一点幸福度。 给出n副画作的美丽值,现在要将他们排成一行。求出游客能获得的最大幸福值。
思路:两个优先队列维护(互相倒)
代码:
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
There are n pictures delivered for the new exhibition. The i-th painting has beauty ai. We know that a visitor becomes happy every time he passes from a painting to a more beautiful one.
We are allowed to arranged pictures in any order. What is the maximum possible number of times the visitor may become happy while passing all pictures from first to last? In other words, we are allowed to rearrange elements of a in any order. What is the maximum possible number of indices i (1 ≤ i ≤ n - 1), such that ai + 1 > ai.
Input
The first line of the input contains integer n (1 ≤ n ≤ 1000) — the number of painting.
The second line contains the sequence a1, a2, …, an (1 ≤ ai ≤ 1000), where ai means the beauty of the i-th painting.
Output
Print one integer — the maximum possible number of neighbouring pairs, such that ai + 1 > ai, after the optimal rearrangement.
Examples
Input
5
20 30 10 50 40
Output
4
Input
4
200 100 100 200
Output
2
Note
In the first sample, the optimal order is: 10, 20, 30, 40, 50.
In the second sample, the optimal order is: 100, 200, 100, 200.
题意::游客在欣赏画时,通常会因为当前这幅画比前一幅画美丽而获得一点幸福度。 给出n副画作的美丽值,现在要将他们排成一行。求出游客能获得的最大幸福值。
思路:两个优先队列维护(互相倒)
代码:
#include<iostream> #include<stdio.h> #include<string.h> #include<queue> using namespace std; int n; int ans; int a[10005]; priority_queue<int> q1,q2; int main() { scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&a[i]); q1.push(-a[i]); } int now; while((!q1.empty())||(!q2.empty())) { if(!q1.empty()) now=q1.top(),q1.pop(); while(!q1.empty()) { int nex=q1.top(); q1.pop(); if(nex<now) { ans++; now=nex; } else q2.push(nex); } if(!q2.empty()) now=q2.top(),q2.pop(); while(!q2.empty()) { int nex=q2.top(); q2.pop(); if(nex<now) { ans++; now=nex; } else q1.push(nex); } } printf("%d\n",ans); }
相关文章推荐
- 完全教程 Aircrack-ng破解WEP、WPA-PSK加密利器 [MARK]
- LeetCode 219. Contains Duplicate II
- AIDL旅行记之开篇AIDL基本介绍
- hdu 5175 Misaki's Kiss again
- C - Sorting Railway Cars
- 《机器学习实战》学习笔记(四):Naive Bayes
- Climbing Stairs
- HDU-1039-Easier Done Than Said?
- 集合类 Contains 方法 深入详解 与接口的实例
- 天池新人实战赛----阿里移动推荐算法大赛(御膳房、DTPAI----ODPS初体验)
- 线程间协作:wait,notify,notifyAll,join,yield
- failed to lazily initialize a collection of role:XXX, no sessi
- GoAhead 2.1.8嵌入式webserver源码分析学习(三)---main函数分析
- ORA-00600: internal error code, arguments: [SKGMFAIL]问题解决
- 错误: Error Domain=kCLErrorDomain,The operation couldn’t be completed
- AI - Ideas
- servlet过滤器链FilterChain
- FOJ Problem 2216 The Longest Straight
- 【mdadm】将任何块设备做成RAID
- diff 命令 expain