这道题应该是很简单的,但是由于我的算法不好,不能满分。日后再来改进。
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
struct num{
long long a;
int idx;
};
num s[200005];
bool cmp(num b,num c){
return b.a<a.c;
}
int main(){
int n;
cin>>n;
for(int i=0;i<n;++i)scanf("%lld",&s[i]);
sort(s,s+n,cmp);
for(int i=0;i<n;++i){
s[i].idx=1;
for(int j=i+1;j<n;++j)
if(s[i].a==s[j].a){
s[i].idx++;s[i].a=-1;
}
}
sort(s,s+n,cmp);
for(int i=0;i<n;++i)
if(s[i].a!=-1){while(1);
printf("%lld %d\n",s[i].a,s[i].idx);}
return 0;
}