An và Bình là hai cậu bé rất ngoan ngoãn. Mỗi khi thấy mẹ bận rộn với công việc, hai anh em sẽ cùng nhau giúp đỡ mẹ làm những việc nhỏ nhặt trong nhà. Hôm nay, cả hai quyết định dọn dẹp phòng của mình để mẹ có thêm thời gian nghỉ ngơi. Trong lúc đang sắp xếp lại chiếc bàn học của mình, An tìm thấy một chiếc hộp có ~N~ đồng xu, cậu liền nghĩ ra một trò chơi như sau :
Ban đầu, An sẽ xếp ~N~ đồng xu thành một hàng ngang, đánh số từ ~1~ đến ~N~. Mỗi đồng xu sẽ có trạng thái úp hoặc ngửa tương ứng là ~0~ hoặc ~1~. Ban đầu tất cả các đồng xu đều ở trạng thái úp. Sau đó, An thực hiện một trong hai thao tác sau:
- Lật các đồng xu trong đoạn ~[L,R]~ từ trạng thái úp sang ngửa và ngược lại.
- Chọn ra một đoạn ~[L,R]~ và Bình phải trả lời ngay là trong đoạn này có bao nhiêu đồng xu đang ở trạng thái ngửa.
Do các đồng xu bị thay đổi nhiều lần nên Bình không thể ghi nhớ và trả lời ngay được. Bạn hãy giúp Bình trả lời nhé!
Dữ liệu
Nhập dữ liệu từ file flipcoin.inp
:
- Dòng đầu tiên chứ hai số nguyên ~N, Q~ ~(2 \le N \le 10^5,1 \le Q \le 10^5)~ lần lượt là số đồng xu và số lượng thao tác.
- ~Q~ dòng tiếp theo mỗi dòng chứa ~3~ số nguyên mô tả một trong hai thao tác:
0 L R
: Lật các đồng xu trong đoạn ~[L,R]~.1 L R
: Giúp Bình trả lời xem trong đoạn ~[L,R]~ có bao nhiêu đồng xu đang ở trạng thái ngửa.
Kết quả
Ghi ra file flipcoin.out
:
- Với mỗi thao tác ~1~, in ra trên mỗi dòng là kết quả bài toán.
Giới hạn
- ~50\%~ số điểm tương ứng với giới hạn ~1 \le N \le 5×10^3, 1 \le Q \le 10^4~.
- ~50\%~ số điểm còn lại không có ràng buộc gì thêm.
Ví dụ
Dữ liệu
3 7
0 2 3
0 2 3
1 1 3
0 1 3
1 2 3
1 2 3
0 1 2
Kết quả
0
2
2
Comments