编程题:玻璃管中的小球
有一根笔直的玻璃管和若干小球,初始时玻璃管内是空的,每个小球都有一个权值x,不同小球的权值可能相同。
玻璃管和小球支持以下三个操作:
从玻璃管的右端放入一个小球
从玻璃管的左端取出一个小球
翻转玻璃管:玻璃管原来的左端变为现在的右端,原来的右端变为现在的左端。
现在要开始进行以下操作。
### 输入格式:
第一行一个正整数q(1<=q<=400000),表示对玻璃管和小球的操作次数,初始时,玻璃管为空。
接下来q行,
若是 1 x,则将一个权值为x的小球从玻璃管右端放入玻璃管(1<=x<=1000000)。
若是 2,则从玻璃管左端取出一个小球(若当前玻璃管为空,则忽略此操作)
若是 3,则翻转玻璃管
### 输出格式:
对于每个输入输出一行一个整数,为玻璃管左端小球和玻璃管右端小球的权值的异或值(这里的异或是按位异或,运算符为 '^')。
若当前玻璃管为空,则输出-1
### 输入样例1:
in
5
1 2
1 3
3
2
2
### 输出样例1:
out
0
1
1
0
-1
### 输入样例2:
in
4
1 2
3
1 3
3
### 输出样例2:
out
0
0
1
1
答案:若无答案欢迎评论
玻璃管和小球支持以下三个操作:
从玻璃管的右端放入一个小球
从玻璃管的左端取出一个小球
翻转玻璃管:玻璃管原来的左端变为现在的右端,原来的右端变为现在的左端。
现在要开始进行以下操作。
### 输入格式:
第一行一个正整数q(1<=q<=400000),表示对玻璃管和小球的操作次数,初始时,玻璃管为空。
接下来q行,
若是 1 x,则将一个权值为x的小球从玻璃管右端放入玻璃管(1<=x<=1000000)。
若是 2,则从玻璃管左端取出一个小球(若当前玻璃管为空,则忽略此操作)
若是 3,则翻转玻璃管
### 输出格式:
对于每个输入输出一行一个整数,为玻璃管左端小球和玻璃管右端小球的权值的异或值(这里的异或是按位异或,运算符为 '^')。
若当前玻璃管为空,则输出-1
### 输入样例1:
in
5
1 2
1 3
3
2
2
### 输出样例1:
out
0
1
1
0
-1
### 输入样例2:
in
4
1 2
3
1 3
3
### 输出样例2:
out
0
0
1
1
答案:若无答案欢迎评论