Ổn định mảng (phép AND)
Đề bài
Mô tả
Cho một mảng gồm các phần tử hoặc (chỉ số bắt đầu từ ).
Trong một bước, mảng được thay bằng một mảng mới có cùng độ dài theo quy tắc sau:
- Đầu tiên, định nghĩa là mảng sau khi dịch vòng sang phải ô, tức là .
- Sau đó mỗi phần tử được thay bằng , trong đó là phép AND logic.
Quá trình kết thúc khi mảng không còn thay đổi. Với mảng cho trước, hãy xác định xem cuối cùng mảng có gồm toàn số hay không. Nếu có, in ra số bước cần thiết; nếu không, in ra .
Dữ liệu vào
- Dòng đầu chứa số nguyên () — số bộ test.
- Với mỗi bộ test:
- Dòng đầu chứa hai số nguyên và (, ).
- Dòng thứ hai chứa số nguyên ().
Tổng trên tất cả các bộ test không vượt quá .
Dữ liệu ra
Với mỗi bộ test, in ra một số nguyên trên một dòng: số bước nhỏ nhất để mảng trở thành toàn , hoặc nếu điều đó không thể xảy ra.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 5 2 1 0 1 3 2 0 1 0 5 2 1 1 0 1 0 4 2 0 1 0 1 1 1 0 |
1 1 3 -1 0 |
Test 3: mảng biến đổi sau bước. Test 4: với , mỗi phần tử chỉ AND với chính nó hoặc giá trị tương ứng cố định nên mảng không thay đổi — không bao giờ về toàn . Test 5: mảng đã toàn ngay từ đầu nên cần bước. |
| 5 2 1 0 1 3 2 0 1 0 5 2 1 1 1 1 0 4 2 0 1 0 1 1 1 0 |
1 1 4 -1 0 |
Test 3 ở đây cần bước vì có dãy số liên tiếp (theo vòng dịch) trước khi chạm phần tử . |
Bình luận