石家庄最新今天消息,什么是seo营销,网站集约化建设 技术,addthis wordpress题目描述 某次科研调查时得到了n个自然数#xff0c;每个数均不超过1500000000#xff08;1.5*109#xff09;。已知不相同的数不超过10000个#xff0c;现在需要统计这些自然数各自出现的次数#xff0c;并按照自然数从小到大的顺序输出统计结果。 输入描述: 第1行是整数… 题目描述 某次科研调查时得到了n个自然数每个数均不超过15000000001.5*109。已知不相同的数不超过10000个现在需要统计这些自然数各自出现的次数并按照自然数从小到大的顺序输出统计结果。 输入描述: 第1行是整数n表示自然数的个数。
第2~n1行每行一个自然数。 输出描述: 输出m行m为n个自然数中不相同数的个数按照自然数从小到大的顺序输出。每行输出两个整数分别是自然数和该数出现的次数其间用一个空格隔开。 示例1 输入 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每个数均不超过15000000001.5*109 假如用冒泡排序本题会运行超时所以我们用qsort函数快速排序
下面附上代码
#includestdio.h
#includestdlib.h
int compare(const void*pa,const void*pb)
{int *a(int*)pa;int *b(int*)pb;return *a-*b;
}
int main()
{int n;int tmp;int num1;scanf(%d,n);int arr[n];for(int i0;in;i){scanf(%d,arr[i]);}qsort(arr,n,sizeof(int),compare);for(int i0;in;i){if(arr[i]arr[i1]){num;}else{printf(%d %d\n,arr[i],num);num1;}}return 0;
}