Nội dung Bài tập
Mã:
CLB_CAST_5
Tên:
CLB_CAST_5
Dạng thi:
oi
Thang điểm:
2 điểm
Giới hạn thời gian:
1 giây
Giới hạn bộ nhớ:
256 MB
Được tạo bởi:
namnp
Giả sử bạn có một chuỗi nhị phân như sau:  “011100011” 
Một cách để mã hóa chuỗi này là cộng cho mỗi chữ số tổng của các chữ số liền kề. Ví dụ, chuỗi trên sẽ trở thành: “123210122” 

Cụ thể, nếu P là chuỗi ban đầu, và Q là chuỗi đã mã hóa, thì Q[i] = P[i-1] + P[i] + P[i+1] cho tất cả các vị trí chữ số i. Các ký tự ngoài cạnh trái và phải của chuỗi được coi là không. 

Cách giải mã: (lấy chuỗi “123210122” làm ví dụ). 

Trường hợp 1: 
Giả sử P[0] = 0.  
Vì Q[0] = P[0] + P[1] = 0 + P[1] = 1, chúng ta biết rằng P[1] = 1.  
Vì Q[1] = P[0] + P[1] + P[2] = 0 + 1 + P[2] = 2, chúng ta biết rằng P[2] = 1. 
Lặp lại các bước này cho ta được P[3] = 1, P[4] = 0, P[5] = 0, P[6] = 0, P[7] = 1, và P[8] = 1 và lưu ý phương trình này Q[8] = P[7] + P[8] = 1 + 1 = 2. Vì phương trình này đúng, ta đã khôi phục được một chuỗi ban đầu là “011100011”. 

Trường hợp 2: 
Giả sử P[0] = 1. 
Vì Q[0] = P[0] + P[1] = 1 + P[1] = 1, chúng ta biết rằng P[1] = 0.  
Vì Q[1] = P[0] + P[1] + P[2] = 1 + 0 + P[2] = 2, chúng ta biết rằng P[2] = 1.  
Bây giờ lưu ý rằng Q[2] = P[1] + P[2] + P[3] = 0 + 1 + P[3] = 3, điều này dẫn đến kết luận rằng P[3] = 2. Tuy nhiên, điều này vi phạm thực tế là mỗi ký tự trong chuỗi ban đầu phải là ‘0’ hoặc ‘1’. Do đó, không tồn tại chuỗi ban đầu nào như vậy mà chữ số đầu tiên là ‘1’. Như vậy trả về kết quả là “NONE”. 
Cho một chuỗi Q, chứa chuỗi đã mã hóa, trả về 2 dòng. Dòng đầu tiên chứa chuỗi được giải mã với giả định ký tự đầu tiên là ‘0’, Dòng thứ hai giả định ký tự đầu tiên là ‘1’. 


Ví dụ:

Input

Output

123210122

011100011

NONE






    Quảng cáo
       Ngôn ngữ : 

       Theme : 
Mời bạn soạn code



		



      Ai có thể xem bài này : 

Thông tin