Mảng tốt
Đề bài
Mô tả
Một mảng các số nguyên không âm được gọi là tốt nếu
trong đó là phép XOR theo bit.
Ví dụ, mảng là tốt vì . Ngược lại, mảng không tốt vì .
Cho mảng . Hãy thêm nhiều nhất phần tử vào cuối mảng để mảng trở thành tốt.
Các phần tử thêm vào không cần đôi một khác nhau và không cần khác các phần tử đã có. Bạn không phải tối thiểu hoá số phần tử thêm vào: nếu mảng đã tốt sẵn thì được phép không thêm gì cả. Có thể chứng minh rằng với các ràng buộc đã cho luôn tồn tại đáp án. Nếu có nhiều đáp án, in ra đáp án nào cũng được.
Dữ liệu vào
- Dòng đầu chứa số nguyên là số bộ dữ liệu.
- Mỗi bộ dữ liệu gồm hai dòng:
- Dòng thứ nhất chứa số nguyên là số phần tử của mảng.
- Dòng thứ hai chứa số nguyên .
Dữ liệu ra
Với mỗi bộ dữ liệu, in ra hai dòng:
- Dòng thứ nhất chứa số nguyên là số phần tử bạn muốn thêm vào.
- Dòng thứ hai chứa số nguyên là các phần tử được thêm. Nếu thì dòng này để trống.
Ràng buộc
- và
- Tổng trên tất cả các bộ dữ liệu không vượt quá
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 4 1 2 3 6 1 8 2 1 1 |
2 6 18 2 8 16 2 0 2 |
Bộ 1: mảng đã tốt sẵn nên in và một dòng trống cũng được chấp nhận; đáp án minh hoạ thêm và , cho mảng có tổng và XOR bằng . Bộ 2: mảng có tổng . Bộ 3: mảng có tổng . |
| 2 1 0 3 5 5 5 |
2 0 0 2 5 20 |
Bộ 1: mảng đã tốt vì ; thêm hai số vẫn giữ mảng tốt. Bộ 2: mảng có tổng và XOR bằng ; sau khi thêm và thì tổng là và XOR là . |
Bình luận