Submit solution
Points:
100.00 (partial)
Time limit:
10.0s
Memory limit:
1G
Input:
stdin
Output:
stdout
Author:
Problem type
Allowed languages
C, C++, GAS64, Pascal, Perl, PHP, Python, Sed, TCL, Text
Cho dãy ~N~ số nguyên ~A_1~, ~A_2~, ..., ~A_N~ trong đó mỗi số được lưu trữ như một số nguyên không dấu ~K~ bit. Lập bảng bit ~N~ dòng, ~K~ cột tương ứng với dãy số đã cho theo quy tắc: dòng thứ ~i~ của bảng là chuỗi bit biểu diễn số hạng ~A_i~.
Thí dụ, dãy gồm 3 số 16 bit: 43212, 7184, 12571 tương ứng với bảng bit 3 dòng, 16 cột:
1010100011001100
0001110000010000
0011000100011011
Người ta thực hiện các phép biến đổi dưới đây trên bảng bit:
- Đảo ngược giá trị các bit trên một dòng.
- Đảo ngược giá trị các bit trên một cột.
Một dãy các biến đổi như vậy sẽ làm thay đổi bảng bit và nhận được một dãy các số nguyên tương ứng. Hãy tìm dãy biến đổi có ít phép biến đổi nhất đưa một dãy số nguyên cho trước về một dãy số nguyên có tổng đạt giá trị lớn nhất.
Dữ liệu vào:
Gồm 2 dòng:
- Dòng đầu ghi 2 giá trị ~N~ và ~K~
- Dòng sau ghi ~N~ giá trị nguyên ~A_1~, ~A_2~, ..., ~A_N~.
Kết quả:
Gồm 2 dòng:
- Dòng đầu ghi số phép biến đổi đã dùng,
- Dòng sau ghi ~N~ giá trị nguyên đã biến đổi tương ứng từ dãy số đã cho.
Giới hạn kích thước: ~N~ không quá 200, ~K~ không quá 256.
Trong thí dụ trên, các dữ liệu vào và ra là:
Input
3 16
43212 7184 12571
Output
8
48607 63228 56311
Comments