http://ybt.ssoier.cn:8088/problem_show.php?pid=1239
#include<iostream>
#define MAXN 210000
using namespace std;
long long a[MAXN];
long long b[MAXN];
void MS(int left,int mid,int right)
{
int i,j,k;
for(k=left; k<=right; k++)
b[k]=a[k];
for(i=left,j=mid+1,k=left;i<=mid&&j<=right;k++)
{
if(b[i]<=b[j])
a[k]=b[i],i++;
else
a[k]=b[j],j++;
}
while(i<=mid) a[k++]=b[i++];
while(j<=right) a[k++]=b[j++];
return ;
}
void M(int left,int right)
{
if(left<right)
{
int mid=(right-left)/2+left;
M(left,mid);
M(mid+1,right);
MS(left,mid,right);
}
}
int main()
{
int n,i,x=-1,cnt=0;
cin>>n;
for(i=1; i<=n; i++)
{
cin>>a[i];
}
M(1,n);
for(i=1; i<=n; i++)
{
if(x!=a[i])
{
if(i>1)
{
cout<<x<<" "<<cnt<<endl;
}
x=a[i];
cnt=1;
}
else
{
cnt++;
}
}
cout<<x<<" "<<cnt<<endl;
return 0;
}
版权声明:本文为qq_38851184原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。