时间限制: 1 Sec 内存限制: 128 MB
提交: 523 解决: 162
[状态] [提交] [命题人:admin]
题目描述
Little Jing 有很多标杆,已知每个标杆的长度(不超过10000),现在她要把标杆插在地上,相同长度的标杆要接在一起(一个接在另外一个的上面)。Little Jing想知道最后地上插了多少根杆,你能帮帮她吗?
输入
首先输入一个整数N,表示有N组测试实例。
每组实例输入两行,第一行一个正整数n(n<=1000),表示标杆的数量。
第二行是n个正整数表示n个标杆的长度。
输出
每组实例输出一行,包含两个数,最后长度最高的那根杆所包含的标杆的数量,地上插了多少根杆,中间用一个空格隔开。(题目保证有唯一解)
样例输入 Copy
2
3
1 2 3
4
6 5 6 7
样例输出 Copy
1 3
2 3
#include<iostream>
using namespace std;
const int maxn = 10005;
int main(){
int t,m;
cin>>t;
while(t--){
int max = 0;
int sum = 0;
int u = 0;
int flag = 0;
int a [maxn] = {0};
int n;
cin>>n;
for(int i=0;i<n;i++){
cin>>m;
a[m]++;
}
for(int i=0;i<=10002;i++){
if(a[i]){
sum++;
flag = a[i]*i;
if(flag>u){
max = a[i];
u = flag;
}
}
}
cout<<max<<" "<<sum<<endl;
}
return 0;
}