Problem B: Bitset I - Bit Flag

"
Time Limit $2$ 秒/Second(s) Memory Limit $512$ 兆字节/Megabyte(s)
提交总数 $53$ 正确数量 $19$
裁判形式 标准裁判/Standard Judge 我的状态 尚未尝试
难度 分类标签 STL

Bit Flag 

それぞれがONまたはOFFであるn個のフラグで決定される「状態」は、0,1,…,n−1 番目のフラグを1(ON)または0(OFF)で表した、1つのビット列で表すことができます。 ビット列は各桁が0または1である2進数として表されるため、状態は対応する1つの10進数の整数値として管理することができます。

 64個のフラグからなる状態を管理するビット列に対して、以下の種類の操作を行ってください。ただし、初期状態でビット列の全てのフラグはOFFになっているものとします。

 test(i): i番目のフラグの状態がONの場合1、OFFの場合0を出力する 

set(i): i番目のフラグをONにする

clear(i): i番目のフラグをOFFにする 

flip(i): i番目のフラグを反転する 

all: 全てのフラグがONになっている場合1、なっていない場合0を出力する

any: 何れかのフラグがONになっている場合1、なっていない場合0を出力する

none: 全てのフラグがOFFになっている場合1、なっていない場合0を出力する 

count: ONになっているフラグの数を出力する val: 状態の整数値を出力する

入力は以下の形式で与えられます。

 q 

query1 

query2

 : 

queryq

 各クエリqueryiは 

0  i 

または

1  i 

または 

2  i 

または 

3  i 

または 

4

 または 

5

 または

 6 

または 

または

 8 

の形式で与えられます。最初の数字0, 1,...,8 は操作の種類を示し、それぞれtest(i), set(i), clear(i), flip(i), all, any, none, count, val を表します。

各test, all, any, none, count, val操作ごとに、操作結果を1行に出力してください。
14
1 0
1 1
1 2
2 1
0 0
0 1
0 2
0 3
3 3
4
5
6
7
8
1
0
1
0
0
1
0
3
13

1≤ q≤ 200,000

 0≤ i< 64