记录编号 144133 评测结果 RRRRRR
题目名称 加法问题 最终得分 0
用户昵称 GravatarFoenix 是否通过 未通过
代码语言 C++ 运行时间 0.000 s
提交时间 2014-12-20 15:41:35 内存使用 0.31 MiB
显示代码纯文本
#include <cstdio>
#include <cstring>
#include <iostream>
#include <cmath>
#include <cstdlib>
using namespace std;
const int MAXN=80005;
int m,a,b;
struct NODE{
	int v,s,r;
	NODE *ch[2];
	void Maintain(){
		s=1;
		if(ch[0]!=NULL)s+=ch[0]->s;
		if(ch[1]!=NULL)s+=ch[1]->s;
	}
};
NODE *root;
void rotate(NODE* &root,int d){
	NODE* p=root->ch[d^1]; root->ch[d^1]=p->ch[d]; p->ch[d]=root;
	p->Maintain(); root->Maintain(); root=p;
}
void Insert(NODE* &root,int x){
	if(root==NULL){
		root=new NODE(); root->v=x; root->r=rand();
		root->s=1; root->ch[0]=root->ch[1]=NULL;
	}
	else{
		int d=(x<root->v? 0:1);
		Insert(root->ch[d],x);
		if(root->ch[d]->r>root->r)rotate(root,d^1);
	}
}
int main(){
	scanf("%d",&m);
	/*for(int i=1;i<=m;i++){
		scanf("%d%d",&a,&b);
		if(a==0)Insert(root,b);
		else{
			int x1=ABS(b-Lower_bound(root,b));
			int x2=ABS(b-Upper_bound(root,b));
			if(x1<x2)ans=x1,Remove(root,x1);
			else ans=x2,Remove(root,x2);
			printf("%d\n",ans);
		}
	}*/
}