- ← Back
- P1 (1)
- P1 (2)
- P2 (1)
- P2 (2)
- P3 (1)
- P3 (2)
- P3 (3)
- P3 (4)
- P4 (1)
- P4 (2)
- P4 (3)
- P4 (4)
- P4 (5)
- P4 (6)
- P4 (7)
- P4 (8)
- P5 (1)
- P5 (2)
- P5 (3)
- P5 (4)
- P6 (1)
- P6 (2)
- P6 (3)
- P6 (4)
- Гурток 1A
- Гурток 1B
- Гурток 1С
- Гурток 1D
- Гурток 1E
- Гурток 1F
- Гурток 2A
- Гурток 2B
- Гурток 2C
- Гурток 2D
- Гурток 2Е
- Гурток 2F
Поганий програміст
Limits: 1 sec., 256 MiB
Після кожної успішної “справи” ви з напарником ділите між собою здобич.
Вона виглядає як \(N\) мішків складених в ряд. Принцип поділу виглядає так:
Ваш напарник починає першим, мішки лежать у ряд. Ви по черзі ділите мішки що залишились на 2 половини (міняти місцями мішки не можна) (у випадку якщо їх непарна кількість — середній мішок йде в ліву купу) і забираєте собі половину з більшою сумарною масою. Якщо при поділі маси куп вийшли рівні — ви забираєте собі ліву.
Ваш напарник — поганий програміст, чого не можна сказати про вас, тому ви вирішили написати програму, яка буде говорити вам скільки золота буде в купі кожного ковбоя після поділу (спочатку меншу).
Input
У першому рядку задано ціле число \(N\) — кількість мішків з золотом. У другому рядку задано \(N\) додатніх цілих чисел — кількість золота у кожному мішку.
Output
Виведіть два цілих числа — скільки золота буде в двох купах, у порядку зростання.
Constraints
\(1 \le N \le 10^5\),
\(1 \le a_i \le 100\).
Samples
| Input (stdin) | Output (stdout) |
|---|---|
| 5 1 2 3 5 7 | 3 15 |
| Input (stdin) | Output (stdout) |
|---|---|
| 10 100 100 100 100 100 4 4 1 5 4 | 13 505 |
| Input (stdin) | Output (stdout) |
|---|---|
| 6 100 40 1 5 4 3 | 9 144 |
| Element Type | Created | Who | Problem | Compiler | Result | Time (sec.) | Memory (MiB) | # | Actions |
|---|