AT_aalc001_j 長い 01 列
Description
長さ $ 10^{18} $ の `0`, `1` からなる文字列 $ S $ があります。 $ S $ の $ i $ 文字目を $ S_i $ と表します。
はじめ、 $ S $ のすべての文字は `0` です。
クエリを $ Q $ 個処理してください。クエリは以下の $ 2 $ 種類のいずれかです。
- `1 l r`: $ S_l,S_{l+1},\ldots,S_r $ を反転する。すなわち、各文字について `0` を `1` に、`1` を `0` に変更する。
- `2 l r`: $ S_l,S_{l+1},\ldots,S_r $ に含まれる `1` の個数を出力する。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ Q $ $ \mathrm{query}_1 $ $ \mathrm{query}_2 $ $ \vdots $ $ \mathrm{query}_Q $
各クエリは以下のいずれかの形式で与えられる。
> $ 1 $ $ l $ $ r $
> $ 2 $ $ l $ $ r $
Output Format
$ 2 $ 種類目のクエリの個数を $ q $ として、 $ q $ 行出力せよ。 $ j $ 行目には、 $ j $ 番目の $ 2 $ 種類目のクエリに対する答えを出力せよ。
Explanation/Hint
### Sample Explanation 1
はじめ、 $ S $ のすべての文字は `0` です。
$ 2 $ 番目のクエリを処理した後、`1` である文字は $ S_3,S_4,S_5,S_6,S_7 $ です。
$ 4 $ 番目のクエリを処理した後、`1` である文字は $ S_3,S_4,S_8,S_9,S_{10},S_{11},S_{12} $ です。
### Constraints
- $ 1 \leq Q \leq 2 \times 10^5 $
- $ 1 \leq l \leq r \leq 10^{18} $
- 入力される数値はすべて整数