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

There are no comments at the moment.