XẾP GẠCH. MINH RẤT THÍCH TRỊ CHƠI XẾP CÁC CHIẾC HỘP CĨ HÌNH VIÊN GẠCH....

BÀI 1 : XẾP GẠCH.

Minh rất thích trị chơi xếp các chiếc hộp cĩ hình viên gạch. Minh đặt các viên

gạch chồng lên nhau và xây thành nhiều chồng cĩ độ cao khác nhau. Minh khoe với

chị rằng “Chị trơng, em đã xây được một bức tường”. Chị của Minh trả lời “Em phải

xếp các viên gạch cĩ độ cao giống nhau mới được gọi là một bức tường”. Sau khi

nghe chị nĩi như vậy nĩ cân nhắc một tí và cho rằng ý kiến ấy là đúng. Vì vậy em bắt

đầu tiến hành sắp xếp lại các chồng gạch lần lượt từng chiếc một cho đến khi hồn

thành cơng việc. Khi cơng việc đã hồn tất, Minh mệt lả và muốn cĩ bạn nào giúp

Minh di chuyển các viên gạch với số lần ít nhất.

Các chiếc hộp trước và sau khi xếp

Yêu cầu: Hãy lập trình đưa ra số lần di chuyển ít nhất của các viên gạch sao

cho từ các chồng gạch cĩ độ cao khác nhau trở thành các chồng gạch cĩ độ cao bằng

nhau; lần lượt từng chiếc một cho đến khi hồn thành cơng việc.

Dữ liệu vào: cĩ cấu trúc sau:

- dịng đầu tiên là số n, n là số các chồng gạch,

- dịng tiếp theo lần lượt là các h i , độ cao của chồng gạch thứ i. (1≤ n ≤ 50; 1≤

h i ≤ 100; i = 1..n). Lưu ý rằng số viên gạch bao giờ cũng chia hết cho số

chồng gạch.

Dữ liệu ra: chỉ cĩ một dịng chứa một số nguyên dương là kết quả tính tốn số

lần ít nhất sau khi xếp lại các chồng gạch. Nếu khơng cĩ kết quả cũng phải ghi rõ

“KHONG CAN DI CHUYEN LAN NAO”

Ví dụ: với hình trên ta cĩ dữ liệu vào, ra:

Input Output

6

5

5 2 4 1 7 5

7 Khong can di chuyen lan

nao

9 9 9 9 9 9 9