Tuesday, December 10, 2013

Facebook Hacker Cup 2013. Бодлого Альцгеймер

Альцгеймер
Та N ширхэг ачтай ба ач нартаа төрсөн өдрөөр нь настай нь тэнцүү тооны доллар өгдөг (шинэ төрсөн ач нартаа 0 доллар өгдөг).
Элли гэдэг нэг ач чинь төрсөн өдрөөр өгөх долларын шинэ схем бодож олсон: “Хэрэв дурын хоёр ач өөрсдийн авсан долларын хэмжээг харьцуулж үзвэл хоёулаа К тоонд хуваагддаг байна. К-гаас их бөгөөд хоёуланг нь хуваадаг бүхэл тоо олдохгүй”.
Ингэснээр ач бүр дор хаяж хуучин схемээр авч байсан доллараа авна.
0 гэдэг тоо бусад бүх тоондоо хуваагдана.
Та хөгшрөөд альцгеймерийн өвчтэй болсон тул эдгээрийг тооцоолох програм ашиглахаар шийдсэн.
Оролт
Эхний мөрөнд тестийн тоо болох Т бүхэл тоо байрлана.
Тест бүрийн эхний мөрөнд N болон K тоонууд байрлана.
Дараагийн мөрөнд ач нарын чинь насууд болох N бүхэл тоо байрлана: A1, A2, ..., AN.
Гаралт
i – р тест бүрийн хувьд “Case #i: “ гээд настай нь тэнцүү мөнгө өгч байсан дээр хамгийн багадаа ямар хэмжээний мөнгө нэмж болохыг харуулсан бүхэл тоог гаргана.
Хязгаарлалтууд
1 ≤ T ≤ 20
2 ≤ N ≤ 20
1 ≤ K ≤ 20
0 ≤ Ai ≤ 50
Жишээ
Эхний жишээн дээр та хэн нэгэнд 2-ыг өгөөд нөгөөд нь 3-ыг өгнө. Нийт 5 болно. Хуучин схемээр бол хоёулаа 2-ыг аваад нийт 4 болох байсан. Хариу нь 5-4=1 юм. Та хоёуланд нь 2-ыг өгч чадахгүй ба учир нь тэр хоёрын мөнгө хоёулаа 1-ээс гадна 2-т хуваагдах болно.
Хоёр дахь жишээн дээр нэг боломжит шийд нь 3, 7, 5, 16-г өгөх ба нийт 31 болно. Хуучин схемээр бол 28-ыг өгөх байсан тул хариу нь 31-28=3.
Гурав дахь жишээн дээр бүх мөнгө 3-т хуваагдаж байх ёстой. Нэг боломжит шийд нь 6, 21, 51 юм. Энэ нь тэдний насны нийлбэрээс 6-гаар их юм. 6, 18, 51 нь гуравт хуваагдах боловч 6, 18 хоёр нь 6-д ч бас хуваагдах тул энэ нь зөв шийд биш юм.
5
2 1
2 2
4 1
2 7 5 14
3 3
5 18 49
3 1
1 2 3
4 2
0 0 1 2
Case #1: 1
Case #2: 3
Case #3: 6
Case #4: 0
Case #5: 3

No comments: