Мэлхий - 2
N ширхэг чулуу байна, тэдгээр нь 1, 2, ..., N гэж дугаарлагдсан.
Чулуу бүрийн өндөрийг \(h_i\) гэж өгсөн.
Мэлхий эхлээд 1-р чулуу дээр байрлана. Тэрээр дараах үйлдлийг хэд хэдэн удаа давтан хийж байж N-р чулуу дээр хүрнэ:
- Хэрэв мэлхий одоогоор i-р чулуу дээр байгаа бол, i+1, i+2, ..., i+K гэсэн дараагийн K хүртэлх аль ч чулуу руу үсэрч болно.
- Үсэрч буухад $|h_i - h_j|$ гэсэн зардал гарна ($j$ нь буусан чулуу).
Мэлхий N-р чулуу дээр хүрэхэд гарах нийт зардлын хамгийн бага боломжит утгыг ол.
Оролт:
Оролтын файлын эхний мөрөнд чулуунуудын тоо болох N, үсрэх алхамыг илэрхийлэх K бүхэл тоо өгөгдөнө.
Хоёр дахь мөрөнд чулуунуудын өндөрийг илэрхийлэх h1 h2 … hN гэсэн N ш бүхэл тоонууд хоосон зайгаар тусгаарлан өгөгдөнө.
Гаралт:
Гарах боломжтой хамгийн бага нийт зардлыг хэвлэ.
Хязгаарлалтууд:
- Оролтын бүх утгууд нь бүхэл тоо байна.
- \(2 \leq N \leq 10^6\)
- \(K <= 100\)
- \(1 \leq h_i \leq 10^9\)
Дэд бодлого
| № | Дэд бодлого | оноо | Хязгарлалт | Тайлбар |
|---|---|---|---|---|
| 1 | Дэд бодлого -1 | 1 | \(K,N<=45\) | |
| 2 | Дэд бодлого -2 | 1 | \(K<=50, N<=10^3\) | |
| 3 | Дэд бодлого -3 | 1 | \(K<=100, N<=10^5\) | |
| 4 | Дэд бодлого -4 | 1 | \(K<=100, N<=10^6\) |
Жишээ:
Оролт-1
5 3
10 30 40 50 20
Гаралт-1
30
Тайлбар-1
Хэрвээ бид 1 → 2 → 5 гэсэн замыг сонговол нийт зардал:
|10-30| + |30-20| = 20 + 10 = 30
Оролт-2
3 1
10 20 10
Гаралт-2
20
Тайлбар-2
1 → 2 → 3 гэсэн замыг сонговол:
|10-20| + |20-10| = 10 + 10 = 20
Оролт-3
2 100
10 10
Гаралт-3
0
Тайлбар-3
1 → 2 замыг сонговол:
$|10-10| = 0$
Оролт-4
10 4
40 10 20 70 80 10 20 70 80 60
Гаралт-4
40
Тайлбар-4
1 → 4 → 8 → 10 гэсэн замыг сонговол:
$|40-70| + |70-70| + |70-60| = 30 + 0 + 10 = 40$
Comments