MathLabs

Bài 5

Có nn người ngồi thành vòng tròn. Tổng cộng có nknk đồng xu được phân phối, không nhất thiết đều. Một bước chuyển một đồng xu giữa hai người kề nhau. Hãy tìm thuật toán dùng ít bước nhất để cuối cùng mọi người có cùng số đồng xu.
Bước 3 trên 5: Chọn bước làm giảm XX
di+1<0,d1+⋯+di>0d_{i+1}<0,\qquad d_1+\cdots+d_i>0
Phân tích chi tiết

Lấy ii đầu tiên sao cho di+1<0d_{i+1}<0. Nếu tổng tiền tố d1+⋯+did_1+\cdots+d_i dương, chuyển một xu từ người ii sang i+1i+1; trị tuyệt đối giảm một và các số hạng khác không đổi. Nếu tổng không dương, tính tối tiểu buộc d1=⋯=di=0d_1=\cdots=d_i=0.