列表

详情


NC16643. [NOIP2007]统计数字

描述

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

输入描述

第1行是整数n,表示自然数的个数。
第2~n+1行每行一个自然数。

输出描述

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

示例1

输入:

8
2
4
2
4
5
100
2
100

输出:

2 3
4 2
5 1
100 2

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++11(clang++ 3.9) 解法, 执行用时: 89ms, 内存消耗: 2040K, 提交时间: 2020-07-19 15:47:32

#include<bits/stdc++.h>
using namespace std;
int main(){
int n,a;
map<int,int>s;
cin>>n;
while(n--){
cin>>a;
s[a]++;
}
for(auto x:s) cout<<x.first<<" "<<x.second<<endl;
}

Ruby(2.4.2) 解法, 执行用时: 222ms, 内存消耗: 7372K, 提交时间: 2019-08-20 17:18:17

n=gets.to_i
a={}
n.times do
    i=gets.to_i
    if a.has_key? i then
        a[i]+=1
    else
        a[i]=1
    end
    end
    a.sort.each_entry{|i,j| puts "#{i} #{j}"}

pypy3(pypy3.6.1) 解法, 执行用时: 368ms, 内存消耗: 33300K, 提交时间: 2020-10-05 22:50:55

from collections import Counter
l = []
for _ in range(int(input())):
    l.append(int(input()))
count = dict(Counter(l))
for i in sorted (count):
    print(i, count[i])

Python3 解法, 执行用时: 486ms, 内存消耗: 5376K, 提交时间: 2022-09-27 20:35:10

n=int(input())
l={}
for i in range(n):
    t=int(input())
    if t in l:l[t]+=1
    else:l[t]=1
for i in sorted(l.keys()):
    print(i,l[i])

上一题