记录编号 98686 评测结果 AAAAAAAAAA
题目名称 [NOIP 2007]统计数字 最终得分 100
用户昵称 GravatarOI永别 是否通过 通过
代码语言 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;
}