Nộp bài | Các bài nộp | Làm tốt nhất | Về danh sách bài |
PTIT137B - BÀI B - MÃ VẠCH |
Một người tìm đọc các thông tin về nhà sản xuất của sản phẩm trên mã vạch bằng cách dùng điện thoại chụp ảnh lại mã vạch đó. Khi chụp ảnh, mã vạch sẽ được lưu lại dạng mảng 2 chiều các bít nhị phân. Trong mỗi mã vạch có một phần cố định và một phần thay đổi. Phần cố định như sau:
1010---01
1000---00
10-------
10-------
10-------
1000---00
101000001
Trong đó các dấu – là các vị trí của phần thay đổi. Khi đó với một mã vạch thực tế có dạng:
101000101
100011000
100100010
101101011
100111011
100011000
101000001
Thì dãy dữ liệu tạo thành từ các bit của phần thay đổi sẽ là
001110010001011010110111011110
Để dịch thông tin từ dãy bít trên, người ta tách thành các đoạn, mỗi đoạn 5 bít. Ta sẽ được:
00111 00100 01011 01011 01110 11110
Sau đó dịch thành các số nguyên tương ứng:
7 8 11 11 14 30
Sau đó dựa trên bảng sau để dịch ra nội dung thông tin:
Như vậy, nội dung thông tin của dãy bít trên sẽ là: hello!
Bài toán đặt ra là cho trước ảnh của mã vạch. Hãy dịch ra nội dung ẩn đằng sau mã vạch đó.
Input
- Dòng đầu ghi số bộ test (không quá 100). Với mỗi bộ test:
- Dòng đầu tiên ghi 2 số H và W tương ứng là chiều cao và chiều rộng của ảnh (7<=H<=80; 9<=W<=80).
- Tiếp theo là H dòng, mỗi dòng có W bít mô tả ảnh của mã vạch. Chú ý, trong một số trường hợp, ảnh bị xoay so với hướng ban đầu.
Output
- Với mỗi bộ test, in ra màn hình, trên một dòng, nội dung được mã hóa.
- Nếu mã vạch không đúng thì in ra NOCODE, nếu có thể dịch ra nhiều nội dung khác nhau thì ghi INTERFERENCE
Example
Input:
3
10 10
0000000000
0101000101
0100011000
0100100010
0101101011
0100111011
0100011000
0101000001
0000000000
0000000000
10 10
0000000000
1010001010
1000110000
1001000100
1011010100
1001110100
1000110000
1010000010
0000000000
0011111111
10 10
0000000000
0101000101
0100011000
0100100010
0001101011
0100111011
0100011000
0101000001
0000000000
0000000000
Output:
hello!
INTERFERENCE
NOCODE
Được gửi lên bởi: | adm |
Ngày: | 2013-03-24 |
Thời gian chạy: | 5s |
Giới hạn mã nguồn: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Ngôn ngữ cho phép: | ASM32-GCC ASM32 MAWK BC C CSHARP C++ 4.3.2 CPP CPP14 COFFEE LISP sbcl DART FORTH GO JAVA JS-RHINO JS-MONKEY KTLN OCT PAS-GPC PAS-FPC PERL PERL6 PROLOG PYTHON PYTHON3 PY_NBC R RACKET SQLITE SWIFT UNLAMBDA |
hide comments
2018-10-05 15:16:18
Phần cố định kia là sao ?? phần cố định có 7 dòng, bộ test có thể có số dòng từ 7 -> 80. Vậy phần cố định sẽ được xác định như thế nào? Hay phần cố định kia là cho chung với tất cả các hàng? Vậy thì sao lại cần 3 hàng 10------ ? |
|
2015-09-16 06:24:22 Z3r0_L0v3
Ảnh bị xoay là thế quái nào thế |
|
2013-03-26 17:32:53 Trần Vãn Dương D10CN2
AO |