求助pb_ds红黑树8分WA
查看原帖
求助pb_ds红黑树8分WA
409265
YJY0807qwq楼主2021/12/24 22:11
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp> 

using namespace std;
using namespace __gnu_pbds;

tree<long long, null_type, less<long long>, rb_tree_tag, tree_order_statistics_node_update> rbt;
int main()
{
	register int n, opt, i;
	register long long x;
	cin>>n;
	for(i = 1; i <= n; ++i)
	{
		cin>>opt>>x;
		switch(opt)
		{
		case 1: 
		{
			rbt.insert((x << 20) + i);
			break;
		}
		case 2: 
		{
			rbt.erase(rbt.lower_bound(x << 20));
			break;
		}
		case 3: 
		{
			cout<<rbt.order_of_key((x << 20) + 1)<<'\n';
			break;
		}
		case 4: 
		{
			cout<<(*rbt.find_by_order(x - 1) >> 20)<<'\n';
			break;
		}
		case 5: 
		{
			cout<<(*--rbt.lower_bound(x << 20) >> 20)<<'\n';
			break;
		}
		case 6: 
		{
			cout<<(*rbt.upper_bound((x << 20) + n) >> 20)<<'\n';
			break;
		}
		}
	}
}
2021/12/24 22:11
加载中...