记录编号 |
98686 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[NOIP 2007]统计数字 |
最终得分 |
100 |
用户昵称 |
OI永别 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.150 s |
提交时间 |
2014-04-24 14:41:53 |
内存使用 |
3.38 MiB |
显示代码纯文本
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
#define N 201000
struct BST{
struct arr{
int l,r,dat,num;
}t[N];
int root,size;
void clean(){
memset(t,0,sizeof(t));
size = root = 0;
return;
}
void insert(int & x,int y){
if (!x){
x = ++size;
t[x].l = t[x].r = 0;
t[x].dat = y;
t[x].num = 1;
return;
}
else{
if (t[x].dat == y){
t[x].num ++;
}
else{
if (t[x].dat > y) insert(t[x].l,y);
else insert(t[x].r,y);
}
}
return;
}
void inorder(int x){
if (!x) return;
inorder(t[x].l);
printf("%d %d\n",t[x].dat,t[x].num);
inorder(t[x].r);
return;
}
}T;
int n;
int main(){
freopen("pcount.in","r",stdin);
freopen("pcount.out","w",stdout);
scanf("%d",&n);
int x;
while (n--){
scanf("%d",&x);
T.insert(T.root,x);
}
T.inorder(T.root);
return 0;
}