一本通————1239 统计数字

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版权协议,转载请附上原文出处链接和本声明。