【题目描述】
ABNS 生活在一个异次元宇宙中,在那个宇宙中,所有人都可以自由地进行时间旅行,这个宇宙的时间满足一个奇特的结构。人们可以自由地穿越到以前的任何一个时间点,并且从这个时间点开始产生一条新的时间线,很显然,这是一个树形结构。为了方便地管理每一位公民的时间旅行行为,成立了一个超脱时间线束缚的时空管理局,时空管理局负责协助公民进行时间旅行以及记录每一位公民的时间旅行树,时间树上的节点会有一个独一无二的索引 index,表示该节点的创建次序。即对于每一个新事件,时空管理局就会为相关的人员创建一个新的时
间节点。
在那里的人们非常喜欢喝饮料,饮料店有许多饮品,一种饮料由三个参数表示,a 表示卡路里含量,b 表示花费,c 表示美味度。(均为每单位体积,每种饮料总量无限)有时候 ABNS 嘴馋,想买一些混合味饮料,但对指标有严格控制,即热量(卡路里总含量)不能超过 A,花费不能超过 B,同时混合味饮料最美味。
由于 ABNS 是个十分挑剔的人,每次他买饮料的指标会有所变动。同时,饮料店为了满足尽可能多的顾客的需求,会在某些时候增加一种饮品。最后,ABNS可能会在当前时间点选择穿越到另一个时间点。
【输入格式】
第一行一个整数 n 表示总共 n 个事件。
接下来 n 行每行一种事件,事件为一下三种之一(我们设上一个 2 事件答案为 lastans,初始时为 0):
1.add a b c,表示饮品店上架了一种每单位体积卡路里、花费、美味度分别为 a^lastans,b^lastans,c^lastans 的饮料。
2.buy A B,表示 ABNS 来买饮料的口味指标为 A^lastans、B^lastans。(保证此时有饮料可买)
3.return index,表示由于 ABNS 的时间旅行,时间跳到事件 index^lastans(事件从 1 开始编号)之后(保证 index^lastans 是这之前某一个事件)。
上述中^符号表示 c++中的按位异或。
【输出格式】
对于每一个第二种操作,输出混合味饮料的最美味度(四舍五入到整数,且数据保证答案在 int 以内,lastans 为四舍五入后的整数)。
【样例输入】
4
add 1 3 1
add 2 2 1
add 3 1 1
buy 2 3
【样例输出】
1
【样例说明】
一种合法买饮料方式是(0.75,0.25,0.25),即第一种饮料买 0.75 体积,第二、三种各买 0.25 体积,这时候答案是 1.25,四舍五入为 1。
【数据范围与约定】
测试点 1 :n<=100,a、b、A、B<=33000,a=b
测试点 2 :n<=100,a、b、A、B<=33000,a=b
测试点 3 :n<=100,a、b、A、B<=33000,A=B
测试点 4 :n<=100,a、b、A、B<=33000,A=B
测试点 5 :n<=500,a、b、A、B<=33000,数据对 a、b、A、B 随机
测试点 6 :n<=500,a、b、A、B<=33000
测试点 7 :n<=5000,a、b、A、B<=660000,数据对 a、b、A、B 随机
测试点 8 :n<=5000,a、b、A、B<=660000
测试点 9 :n<=100000,a、b、A、B<=33000000,数据对 a、b、A、B 随机
测试点 10:n<=100000,a、b、A、B<=33000000,数据对 a、b、A、B 随机
测试点 11:n<=100000,a、b、A、B<=33000000,没有事件 3
测试点 12:n<=100000,a、b、A、B<=33000000,没有事件 3
测试点 13:n<=100000,a、b、A、B<=33000000,没有事件 3
测试点 14:n<=100000,a、b、A、B<=33000000,没有事件 3
测试点 15:n<=100000,a、b、A、B<=33000000
测试点 16:n<=100000,a、b、A、B<=33000000
测试点 17:n<=100000,a、b、A、B<=33000000
测试点 18:n<=100000,a、b、A、B<=33000000
测试点 19:n<=100000,a、b、A、B<=33000000
测试点 20:n<=100000,a、b、A、B<=33000000
所有数据 c<=1000,保证输入均为正整数。
选手文件夹下 1、2 数据点分别满足测试点 5、9 范围。
