Maximum Subarray Sum
Submit solution
Points:
3
Time limit:
1.0s
Memory limit:
16M
Author:
Problem type
Allowed languages
C++
Олонлог эгзэ сургуулийн сурагчид жил бүр "Бүтээлч долоо хоног" зохион байгуулдаг. Энэ хугацаанд өдөр бүр сурагчид янз бүрийн үйл ажиллагаанд оролцож, оноо авдаг.
Гэхдээ:
- Зарим өдөр маш амжилттай болж эерэг оноо авна
- Зарим өдөр алдаа гаргаж сөрөг оноо авна
Чи энэ долоо хоногийн туршид дараалсан хэдэн өдөр сонгон авч, тэдгээр өдрүүдийн нийт оноог хамгийн их болгохыг хүсэж байна.
Анхаарах зүйл:
- Сонгосон өдрүүд заавал дараалсан байх ёстой
- Хамгийн багадаа 1 өдөр сонгоно
- Хамгийн ихдээ дараалсан K өдрийг сонгох боломжтой.
Чиний даалгавар бол:
Дараалсан өдрүүдийг сонгож хамгийн их цуглуулж болох боломжит нийт оноог олох явдал юм.
Оролт:
Оролтын эхний мөрөнд өдрийн тоог илэрхийлэх нэг бүхэл тоо N, дараалсан өдрийг илэрхийлэх K тоо өгөгдөнө.
Дараагийн мөрөнд тухайн өдрийн авсан оноог илэрхийлэх a1 a2 a3 ... aN гэсэн N ширхэг бүхэл тоо байна
Гаралт:
Гаралтын файлд дараалсан өдрүүдийн хамгийн их боломжит нийлбэр болох нэг бүхэл тоо хэвлэнэ
Хязгаарлалтууд:
- \(1 ≤ K<=N ≤ 100000\)
- \(-10^9 ≤ a[i] ≤ 10^9\)
Дэд бодлого
| № | Дэд бодлого | оноо | Хязгарлалт | Тайлбар |
|---|---|---|---|---|
| 1 | Дэд бодлого -1 | 1 | N ≤ 100, K ≤ 10 | |
| 2 | Дэд бодлого -2 | 1 | N ≤ 1000 | |
| 3 | Дэд бодлого -3 | 1 | Бүх ai ≥ 0 | |
| 4 | Дэд бодлого -4 | 1 | Нэмэлт хязгаарлалтгүй |
Жишээ:
Оролт-1
5 2
1 2 3 4 5
Гаралт-1
9
Оролт-2
6 3
-2 1 4 -3 5 -1
Гаралт-2
6
Comments