问题描述
在⼀个有限的正整数序列中,有些数会多次重复出现在这个序列中。
如序列:
3
,
1
,
2
,
1
,
5
,
1
,
2
。其中
1
就出现
3
次,
2
出现
2
次,
3
出现
1
次,
5
出现
1
次。
你的任务是对于给定的正整数序列,从⼩到⼤依次输出序列中出现的数及出现的次数。
输⼊格式
第⼀⾏正整数
n
,表示给定序列中正整数的个数。
第⼆⾏是
n
个⽤空格隔开的正整数
x
,代表给定的序列。
输出格式
若⼲⾏,每⾏两个⽤⼀个空格隔开的数,第⼀个是数列中出现的数,第⼆个是该数在序列中出现
的次数。
样例输⼊
12
8 2 8 2 2 11 1 1 8 1 13 13
样例输出
1 3
2 3
8 3
11 1
13 2
数据规模和约定
数据:
n<=1000
;
0<x<=1000,000
。
用字符串计数的问题,不过在编译时发现要定义a[1000001]且赋给其中的数全为零,这个数组好像得是全局的才可以运行出来
#include<iostream>
#include<algorithm>
#include<math.h>
#include<string>
#include <set>
#include <queue>
using namespace std;
int a[1000001];
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
{
int temp;
cin>>temp;
a[temp]++;
}
for(int i=0;i<1000001;i++)
{
if(a[i]!=0)
cout<<i<<" "<<a[i]<<endl;
}
}