Diễn tập đoàn xe tăng
Một đoàn xe tăng gồm chiếc xếp thành hàng. Ban đầu các xe được đánh số từ tới theo thứ tự xuất hiện trong đoàn (xe đứng đầu, xe đứng cuối). Mỗi xe có một bán kính nhận tin .
Cuộc diễn tập gồm lượt truyền tin. Một lượt diễn ra như sau:
- Xe đang đứng đầu đoàn phát một bản tin. Xe nhận được bản tin sẽ tiếp tục chuyển nó về phía cuối đoàn. Quá trình lặp lại cho đến khi xe đang đứng cuối đoàn nhận được bản tin.
- Sau khi xe đang đứng cuối đoàn nhận bản tin, nó di chuyển lên đầu đoàn. Lúc này đoàn đã có một thứ tự mới và lượt tiếp theo bắt đầu.
Cuộc diễn tập kết thúc khi đoàn xe quay lại đúng thứ tự ban đầu, tức là sau lượt mà xe vừa di chuyển lên đầu đoàn.
Việc truyền tin giữa hai xe diễn ra như sau. Xét hai xe trong đoàn: xe thứ nhất đứng ở vị trí thứ tính từ đầu đoàn, xe thứ hai đứng ở vị trí thứ và có số hiệu là . Xe thứ nhất có thể truyền trực tiếp bản tin tới xe thứ hai khi và chỉ khi và . Mỗi lần truyền tin trực tiếp giữa hai xe mất đúng 1 giây. Không nhất thiết mọi xe trong đoàn phải nhận được bản tin trong một lượt — chỉ cần xe đang đứng cuối đoàn nhận được.
Cho trước và các bán kính nhận tin , hãy tổ chức việc truyền tin sao cho tổng thời gian truyền tin của cả lượt là nhỏ nhất.
Dữ liệu vào
- Dòng đầu chứa số nguyên — số lượng xe trong đoàn.
- dòng tiếp theo, dòng thứ chứa số nguyên — bán kính nhận tin của xe có số hiệu .
Dữ liệu ra
Một số nguyên duy nhất — tổng thời gian nhỏ nhất để truyền hết bản tin.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 2 1 1 |
5 | Thứ tự ban đầu là . Lượt 1: xe → xe → xe (2 giây). Lượt 2 (thứ tự ): xe → xe → xe (2 giây). Lượt 3 (thứ tự ): xe truyền thẳng cho xe vì bán kính của xe đủ lớn (1 giây). Tổng cộng giây. |
| 5 2 2 2 2 2 |
10 | Mọi xe có bán kính . Trong mỗi lượt, truyền một bản tin tới cuối đoàn cần giây, nên lượt tốn tổng cộng giây. |
Bình luận