Codeforces Round #345 (Div. 2)-B. Beautiful Paintings(暴力)
2016-03-10 14:47
567 查看
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
output
input
output
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个数,ai《ai+1的数有几对,感觉这题比A题更水,题目简单,数据量小,果断暴力。
AC代码:
#include<iostream>
#include<functional>
#include<algorithm>
#include<cstring>
#include<string>
#include<vector>
#include<cstdio>
#include<cmath>
#include<map>
using namespace std;
#define CRL(a) memset(a,0,sizeof(a))
#define QWQ ios::sync_with_stdio(0)
typedef unsigned __int64 LL;
typedef __int64 ll;
#define CMP bool cmp(const node& a,const node& b){ return a.R<b.R||(a.R==b.R&&a.L<b.L); }
const int T = 1555;
const int mod = 1000000007;
int a[T],b[T];
int main()
{
#ifdef zsc
freopen("input.txt","r",stdin);
#endif
int i,j,k,n,m;
while(~scanf("%d",&n))
{
fill(b,b+T,0);
for(i=0,k=0;i<n;++i){
scanf("%d",&a[i]);
b[a[i]]++;
k ++;
}
int c,cnt;
c = cnt = 0;
while(k>1)
{
cnt = 0;
for(i=1;i<=1000;i++){
if(b[i])b[i]--,k--,cnt++;
}
if(cnt>1)
c+= cnt-1;
}
printf("%d\n",c);
}
return 0;
}
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
4200 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个数,ai《ai+1的数有几对,感觉这题比A题更水,题目简单,数据量小,果断暴力。
AC代码:
#include<iostream>
#include<functional>
#include<algorithm>
#include<cstring>
#include<string>
#include<vector>
#include<cstdio>
#include<cmath>
#include<map>
using namespace std;
#define CRL(a) memset(a,0,sizeof(a))
#define QWQ ios::sync_with_stdio(0)
typedef unsigned __int64 LL;
typedef __int64 ll;
#define CMP bool cmp(const node& a,const node& b){ return a.R<b.R||(a.R==b.R&&a.L<b.L); }
const int T = 1555;
const int mod = 1000000007;
int a[T],b[T];
int main()
{
#ifdef zsc
freopen("input.txt","r",stdin);
#endif
int i,j,k,n,m;
while(~scanf("%d",&n))
{
fill(b,b+T,0);
for(i=0,k=0;i<n;++i){
scanf("%d",&a[i]);
b[a[i]]++;
k ++;
}
int c,cnt;
c = cnt = 0;
while(k>1)
{
cnt = 0;
for(i=1;i<=1000;i++){
if(b[i])b[i]--,k--,cnt++;
}
if(cnt>1)
c+= cnt-1;
}
printf("%d\n",c);
}
return 0;
}
相关文章推荐
- Transformation 能将 Windows XP/Server 2003 操作系统,完美地模拟成 Windows Vista 的软件
- 用javascript和css模拟select的脚本
- PHP模拟asp.net的StringBuilder类实现方法
- C#使用ImitateLogin模拟登录百度
- javascript用层模拟可移动的小窗口
- 自编jQuery插件实现模拟alert和confirm
- JS模拟按钮点击功能的方法
- PHP模拟asp中response类实现方法
- 模拟Spring的简单实现
- javascript 模拟点击广告
- JQuery中模拟image的ajaxPrefilter与ajaxTransport处理
- php实现模拟post请求用法实例
- JavaScript实现MIPS乘法模拟的方法
- 模拟xcopy的函数
- JS模拟实现Select效果代码
- php模拟服务器实现autoindex效果的方法
- C# SendInput 模拟鼠标操作的实现方法
- PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法
- js实现模拟银行卡账号输入显示效果
- JS模拟并美化的表单控件完整实例