Внутрішній продукт
Limits: 2 sec., 256 MiB
Це інтерактивна задача.
Зеник і Марічка втомились від важкої директорської роботи в компанії PLVIV та хочуть відпочити. Під час відпочинку вони гратимуть у гру.
Ось правила гри.
На столі лежать \(n\) карт. На кожній карті записано ціле число \(a_i\).
Гравці роблять ходи по черзі, починаючи з Марічки. За хід гравець вибирає одну карту зі столу та забирає її собі.
Гра завершується, коли гравці забрали всі карти зі столу. Після завершення гри обчислюється сума чисел на картах кожного гравця. Якщо ці суми однакові, виграє Зеник, якщо ж різні — виграє Марічка.
Кожен з гравців хоче втерти носа своєму супернику. Для цього директорам потрібен симулятор цієї гри, щоб вони могли тренуватися.
Симулятор повинен працювати в режимі «людина проти комп’ютера». Причому симулятор сам вибиратиме, за кого він гратиме — за Зеника чи за Марічку. Симулятор повинен завжди вигравати в суперника, незалежно від того, які ходи робить суперник.
Напишіть для Зеника з Марічкою програму-симулятор гри.
У першу чергу програма повинна вибрати, за кого вона гратиме. Потім програма повинна просимулювати гру і грати проти суперника.
Input
У першому рядку задано ціле число \(n\) — кількість карт на столі.
У другому рядку записано \(n\) цілих чисел \(a_i\), що записані на картах.
Після зчитування цих чисел ваша програма повинна вивести, за кого
вона гратиме — Marichka
або Zenyk
.
Тепер гравці починають робити ходи по черзі, починаючи з Марічки.
Щоб зробити хід, ваша програма повинна вивести число на карті, яку ви хочете забрати собі.
Кожен хід суперника (число на карті, яке він забирає) буде даватися вашій програмі на вхід і ваша програма повинна зчитати його.
Якщо ваш хід невалідний (наприклад, на столі нема карт з таким
числом), замість ходу суперника вашій програмі буде задано на вхід число
-1
та гра припиниться. У такому випадку завершiть роботу
програми, щоб отримати вердикт Неправильна вiдповiдь
. Якщо
цього не зробити, ви можете отримати вердикт
Помилка часу виконання
.
Подбайте про виклик методу flush
після виводу кожного
рядка. Для цього можна використовувати:
fflush(stdout)
,cout << endl
абоcout.flush()
вC++
;System.out.flush()
вJava
;flush(output)
вPascal
;sys.stdout.flush()
вPython
;Console.Out.Flush()
вC#
.
Constraints
\(2 \le n \le 10^3\),
\(1 \le a_i \le 10^3\).
Notes
Розгляньмо приклад для \(n=7\), \(a = (1, 2, 3, 4, 5, 6, 7)\), де програма грає за Марічку.
Ввід | Вивід | Опис |
---|---|---|
7 |
Програма зчитує число \(n\). | |
1 2 3 4 5 6 7 |
Програма зчитує числа на картах. | |
Marichka |
Програма вибирає грати за Марічку, бо для Марічки ситуація виграшна. | |
4 |
Оскільки програма вибрала грати за Марічку, то програма ходить першою. | |
1 |
Суперник програми, який грає за Зеника, забирає карту із числом \(1\). | |
2 |
Програма забирає карту з двійкою. | |
3 |
Суперник програми забирає карту з трійкою. | |
6 |
Програма забирає карту з шісткою. | |
7 |
Суперник програми забирає сімку. | |
5 |
Програма забирає п’ятірку. Гра завершується, бо гравці забрали всі карти. |
У програми (Марічки) є карти \(4, 2, 6, 5\), а в суперника (Зеника) — карти \(1, 3, 7\). Сума чисел на картах Марічки дорівнює \(4+2+6+5=17\), а на картах Зеника — \(1+3+7=11\). Ці суми різні, тому виграє програма, яка грала за Марічку.
Нижче наведено інший приклад для \(n=4\), \(a = (74, 74, 74, 74)\), де програма цього разу грає за Зеника.
Ввід | Вивід | Опис |
---|---|---|
4 |
Програма зчитує число \(n\). | |
74 74 74 74 |
Програма зчитує числа на картах. | |
Zenyk |
Програма вибирає грати за Зеника, оскільки ця ситуація виграшна для Зеника. | |
74 |
Програма грає за Зеника, тому першим ходитиме суперник — Марічка. | |
74 |
Програма, яка грає за Зеника, також забирає \(74\). | |
74 |
Хід повторюється. | |
74 |
Іще раз повторюється хід. Гра завершується. |
У гравців однаковий набір карт на руках, отже суми чисел на картах також однакові. Переможцем гри є програма, яка грала за Зеника.
Element Type | Created | Who | Problem | Compiler | Result | Time (sec.) | Memory (MiB) | # | Actions |
---|