- .LCN với chương trình LOGO, PAS với chương trình PASCAL
2. Làm phẳng Bài toán
Bài toán
Một bộ bài được cho bởi N đống, mỗi đống chứa một số quân bàị Xem hình 1. Các đống được ký hiệu từ 1 đến N. Ta định nghĩa một nước đi khi nói p và chỉ ra số m. Khi đó m quân bài sẽ được chuyển từ đống p sang tất cả các đống hàng xóm. Đống p có hai hàng xóm là p-1 và p+1 nếu 1 < p < N, và có một hàng xóm là 2 nếu p=1, một hàng xóm là N-
1 nếu p=N. Để ý rằng nước đi như vậy chỉ tồn tại nếu đống p có ít nhất 2m quân bài nếu p có hai hàng xóm và m quân bài nếu p có một hàng xóm.
Bài toán đặt ra là "làm phẳng" tất cả các đống sao cho các đống có số quân bài như nhau sau khi sử dụng ít nước đi nhất. Trong trường hợp có nhiều nghiệm chỉ cần chỉ ra 1 trong chúng.
Hình 1. Năm đống với 0, 7, 8, 1 và 4 quân bài
Hình 2. Bộ bài sau nước đi: p=2, m=2
Hạn chế kỹ thuật
• • Dữ liệu đã cho bảo đảm rằng để giải quyết bài toán trên phải sử dụng tối đa là 10000 nước đị
• • 2 <= N <= 200
• • 0 <= Ci <= 2000 với Ci là số quân bài ban đầu của đống i với 1<= i <= N
Input
Input là file text flat.inp có hai dòng • • Dòng đầu tiên: N
• • Dòng thứ hai có N số nguyên là các giá trị Ci
Output
Output là tệp văn bản flat.out
• • Dòng đầu tiên: số các nước đi (gọi số này là M)
• • Mỗi dòng tiếp theo trong M dòng: các số tương ứng p, m Số thứ tự các bước đi đúng theo thứ tự các dòng được mô tả ở trên.
Ví dụ flat.inp 5 0 7 8 1 4 flat.out 5 5 2 3 4 2 4
3 1 4 2
Trắc nghiệm
Chương trình của bạn chỉ được phép chạy trong 3 giâỵ
Để đạt được điểm tối đa A cho các test, số các nước đi của bạn x phải nhỏ hơn số B do chương trình kiểm tra đã rạ Chú ý rằng, giá trị B của chương trình kiểm tra có thể không là tối ưụ Thực tế, B được chọn dựa trên một thuật toán có chiến lược đơn giản với không có nước đi nào thừa và phụ thuộc vào giá trị trung bình của các quân bài trong các đống. Bạn có thể đạt điểm theo cách tính sau đây: