zoukankan      html  css  js  c++  java
  • 统计数字

     

    链接:http://ybt.ssoier.cn:8088/problem_show.php?pid=1239


    时间限制: 1000 ms         内存限制: 65536 KB

    【题目描述】

    某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*10^9)。已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。

    【输入】

    第一行是整数n,表示自然数的个数;

    第2~n+1每行一个自然数。

    【输出】

    包含m行(m为n个自然数中不相同数的个数),按照自然数从小到大的顺序输出。每行输出两个整数,分别是自然数和该数出现的次数,其间用一个空格隔开。

    【输入样例】

    8
    2
    4
    2
    4
    5
    100
    2
    100
    

    【输出样例】

    2 3
    4 2
    5 1
    100 2
    

    【提示】

    数据范围:

    40%的数据满足:1<=n<=1000;

    80%的数据满足:1<=n<=50000;

    100%的数据满足:1<=n<=200000,每个数均不超过1500 000 000(1.5*10^9)。

    #include<iostream>
    #include<cstring>
    #include<cstdio>
    using namespace std;
    int a[200005],t[200005];
    void msort(int l,int r)
    {
        if(l==r)return ;
        int mid=(l+r)/2;
        msort(l,mid);
        msort(mid+1,r);
        int i=l,j=mid+1,m=l;
        while(i<=mid&&j<=r)
        {
            if(a[i]>a[j])t[m++]=a[j++];
            else t[m++]=a[i++];
        }
        while(i<=mid)t[m++]=a[i++];
        while(j<=r)t[m++]=a[j++];
        for(int i=l;i<=r;i++)a[i]=t[i];
    }
    int main()
    {
        int n,flag=1;
        cin>>n;
        for(int i=1;i<=n;i++)cin>>a[i];
        msort(1,n);
        int k=a[1],cnt=0;
        for(int i=1;i<=n;i++)
        {
            if(a[i]==k)cnt++;
            else {
                cout<<k<<" "<<cnt<<endl;
                k=a[i];
                cnt=1;
            }
        }
        cout<<a[n]<<" "<<cnt<<endl;
        return 0;
        
    }
  • 相关阅读:
    ‘Host’ is not allowed to connect to this mysql server
    centos7安装mysql
    further configuration avilable 不见了
    Dynamic Web Module 3.0 requires Java 1.6 or newer
    hadoop启动 datanode的live node为0
    ssh远程访问失败 Centos7
    Linux 下的各种环境安装
    Centos7 安装 python2.7
    安装scala
    Centos7 安装 jdk 1.8
  • 原文地址:https://www.cnblogs.com/EdSheeran/p/7750197.html
Copyright © 2011-2022 走看看