Бүтээлч долоо хоног


Submit solution

Points: 3
Time limit: 1.0s
Memory limit: 16M

Author:
Problem type
Allowed languages
C++

Олонлог эгзэ сургуулийн "Бүтээлч долоо хоног" болж байна. Сурагчид өдөр бүр янз бүрийн үйл ажиллагаанд оролцож оноо цуглуулдаг. Гэхдээ энэ удаа багш дараах стратегийн дүрэм тавьжээ:

Та:

  • яг K удаа үйл ажиллагаанд оролцоно
  • Оролцох бүрдээ дараалсан хэдэн өдөр сонгоно
  • Сонгосон хэсгүүд хоорондоо давхцахгүй

Нэмэлт нөхцөл (хүндрүүлсэн хэсэг)

  • Та хоосон хэсэг сонгож болохгүй
  • Сонгосон хэсэг бүр дор хаяж 1 өдөртэй
  • Сонгосон хэсгүүдийн хооронд дор хаяж 1 өдөр алгассан байх ёстой
  • Өөрөөр хэлбэл хоёр хэсэг залгаа байж болохгүй

Таны зорилго

  • Яг K ширхэг, давхцахгүй, хоорондоо залгаагүй дараалсан өдрүүдийг сонгож, нийт онооны нийлбэрийг хамгийн их болгох явдал юм

Оролт:

Эхний мөрөнд хоёр бүхэл тоо өгөгдөнө: N K

Дараагийн мөрөнд N ширхэг бүхэл тоо:

a1 a2 a3 ... aN
  • N — өдрийн тоо
  • K — сонгох хэсгийн тоо
  • ai — i дахь өдрийн оноо

Гаралт:

хамгийн их боломжит нийлбэр

Хязгаарлалтууд:

  • \(1 ≤ N ≤ 100000\)
  • \(1 ≤ K ≤ 10\)
  • \(-1000 ≤ ai ≤ 1000\)
Дэд бодлого
Дэд бодлого оноо Хязгарлалт Тайлбар
1 Дэд бодлого -1 1 \(N ≤ 20\)
2 Дэд бодлого -2 1 \(N ≤ 200\)
3 Дэд бодлого -3 1 \(K = 1\)
4 Дэд бодлого -4 1 Бүх \(ai ≥ 0\)
5 Дэд бодлого -5 1 Нэмэлт хязгаарлалтгүй

Жишээ:

Оролт-1
6 2
1 2 -1 2 -3 2
Гаралт-1
5
Тайлбар

Боломжит сонголтууд:

[1 2] = 3 (алгасна) [2] = 2

Нийлбэр = 5

-️ [1 2] ба [2 -1 2] зэрэг нь давхцаж байгаа тул болохгүй

  • Хоёр хэсэг залгаа байж болохгүй
Оролт-2
5 2
5 -1 5 -1 5
Гаралт-2
10
Тайлбар-2

Зөв сонголт:

[5] (1-р өдөр) (алгасна) [5] (3-р өдөр)

  • Нийлбэр = 10
  • [5] ба [5] (дараалсан байвал) болохгүй
Оролт-3
4 1
-2 -3 -1 -5
Гаралт-3
-1
Тайлбар

K = 1 тул хамгийн их утгатай ганц хэсгийг авна → -1


Comments

There are no comments at the moment.