记录编号 |
364203 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[NOIP 2007]统计数字 |
最终得分 |
100 |
用户昵称 |
HeHe |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.108 s |
提交时间 |
2017-01-15 18:03:50 |
内存使用 |
2.60 MiB |
显示代码纯文本
#include<iostream>
#include<cstdio>
using namespace std;
#define is_num(tmp) (tmp<='9'&tmp>='0')
int fast_read()
{
char tmp(getchar());
int res(0);
while(!is_num(tmp))tmp=getchar();
while(is_num(tmp))
res=(res<<1)+(res<<3)+(tmp^48),
tmp=getchar();
return res;
}
struct ans{
int num,time;
ans()
{
time=0;
}
}ans[200000];
int s[200000],n;
void qsort(int l,int r)
{
int i(l),j(r),p((l+r)>>1);
int mid(s[p]);
while(i<=j)
{
while(s[i]<mid)i++;
while(s[j]>mid)j--;
if(i<=j)
{
int tmp=s[i];
s[i]=s[j];s[j]=tmp;
i++,j--;
}
}
if(i<r)qsort(i,r);
if(l<j)qsort(l,j);
return ;
}
int main()
{
freopen("pcount.in","r",stdin);
freopen("pcount.out","w",stdout);
n=fast_read();
for(int i=0;i<n;i++)
s[i]=fast_read();
qsort(0,n-1);
int k=0;
ans[k].num=s[0];
ans[k].time=1;
for(int i=1;i<n;i++)
{
if(ans[k].num==s[i])ans[k].time++;
else
{
k++;ans[k].num=s[i];ans[k].time=1;
}
}
for(int i=0;i<=k;i++)
cout<<ans[i].num<<" "<<ans[i].time<<"\n";
return 0;
}