Phép toán thao tác bit
Đề bài
Mô tả
Khi còn là một học sinh chuyên Tin của trường CTN, được học về các phép toán thao tác bit, Hiếu đã sáng tạo ra nhiều bài toán để giúp các bạn trong lớp cùng luyện tập. Dưới đây là một trong số các bài toán có liên quan đến các phép toán AND, OR, XOR.
Cho hai số nguyên không âm và dãy số nguyên không âm . Hãy đếm số lượng bộ chỉ số thỏa mãn hai điều kiện sau:
- ;
- .
Trong đó AND, OR, XOR là các phép toán thao tác bit (toán tử &, |, ^ trong C++), thực hiện đúng theo thứ tự các dấu ngoặc.
Bạn hãy cùng Hiếu lập trình giải quyết bài toán trên.
Dữ liệu vào
- Dòng thứ nhất chứa ba số nguyên ();
- Dòng thứ hai chứa số nguyên không âm ().
Hai số liên tiếp trên cùng dòng được ghi cách nhau bởi dấu cách.
Dữ liệu ra
In ra một số nguyên là số bộ chỉ số thỏa mãn điều kiện đề bài.
Ràng buộc
- .
- .
- .
Subtasks
- Có số test ứng với số điểm có ;
- Có số test khác ứng với số điểm có và ;
- Có số test khác ứng với số điểm có và ;
- Có số test khác ứng với số điểm có và ;
- Có số test còn lại ứng với số điểm có và .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 5 0 1 2 3 4 1 6 |
1 | Chỉ có bộ : . |
| 6 5 5 1 5 3 7 2 6 |
9 | Ví dụ bổ sung, . Chẳng hạn bộ : . |
| 3 0 1000 1000 999 1000 |
0 | Ví dụ bổ sung: dãy có ít hơn phần tử nên không có bộ chỉ số nào. |
Bình luận