Род модерує карткові ігри між двома гравцями: Джорджем і Тімом. Наразі Тім перетасовує картки. Род підозрює, що Тім намагається обдурити, тому йому потрібна ваша допомога, щоб переконатися, що перетасування справедливе.
Тім робить велику перестановку: він вирізає купу карток із нижньої частини колоди, потім вирізає різні частини зверху ворсу на вершину колоди і повторює процес кілька разів.
Род з орловими очима і може точно бачити, скільки карток Тим ріже кожен раз, проте він не може обчислити та відслідковувати карти так швидко, як Тім перетасовує. Це місце, куди ви заходите: Rod хотів би, щоб ви написали програму чи функцію, яка отримує детальну інформацію про перетасування та визначає, чи є перемішування справедливим, слабким чи хитрощі.
- Якщо після перетасовування менше 25 пар сусідніх карт залишаються сусідніми (в тому ж порядку), тоді перетасування відбувається справедливо, і гра може продовжуватися.
- Якщо щонайменше 25 (але не всі) пари сусідніх карт залишаються сусідніми, тоді перетасування слабке, і Род накине Тіма на голову і попросить його перемістити ще трохи.
- Якщо всі карти залишаться в одному положенні в кінці, тоді Тім, очевидно, обманює, і Род битиме його великою фореллю.
Це кодовий гольф, тому найкоротший код виграє.
Вхід:
Ви отримаєте серію чисел від 0 до 52 (обидва ексклюзивні), розділені пробілом, на кілька рядків, де кожен рядок являє собою раунд перетасування, який починається і закінчується усіма картами, складеними разом.
У кожному рядку перше число - це кількість карток, які Тім вирізає з нижньої частини колоди, а кожне наступне число - це кількість карток, які він опускає з руки на верхню частину колоди. Якщо якісь картки залишаються після останнього номера на рядку, слід припустити, що Тім ставить їх на вершину колоди.
Вхід гарантовано є дійсним. Існує хоча б один рядок чисел, і кожен рядок містить принаймні 2 числа. Перше число у кожному рядку не менше суми всіх інших чисел у тому ж рядку. Новий рядок не є обов'язковим, ви можете припустити, що вхід має один або його немає.
Вихід:
Ваша програма повинна надрукувати / повернути "справедливо", якщо перетасування справедливе, "слабке", якщо переташування слабке, і "хитрість", якщо Тім зберігає всі картки в одному порядку. Новий рядок не є обов'язковим.
Приклад:
На палубі передбачається 52 карти, але для демонстраційних цілей я буду використовувати меншу колоду з 10 карт.
Вхід:
5 3 1
4 2 2
Початкова колода, зверху: 0 1 2 3 4 5 6 7 8 9
5
➜ 0 1 2 3 4
( 5 6 7 8 9
у руці)
3
➜ 5 6 7 0 1 2 3 4
( 8 9
у руці)
1
➜ 8 5 6 7 0 1 2 3 4
( 9
у руці)
кінець рядка ➜ 9 8 5 6 7 0 1 2 3 4
4
➜ 9 8 5 6 7 0
( 1 2 3 4
у руці)
2
➜ 1 2 9 8 5 6 7 0
( 3 4
у руці)
2
➜ 3 4 1 2 9 8 5 6 7 0
4 пари залишаються сусідніми:(3 4) (1 2) (5 6) (6 7)
Тестові приклади:
43 5 5 5 5 5 5 5 5
43 5 5 5 5 5 5 5 5
43 5 5 5 5 5 5 5 5
Вихід: fair
43 5 5 5 5 5 5 5 5
43 5 5 5 5 5 5 5 5
43 5 5 5 5 5 5 5
Вихід: weak
29 24
19 18
38 2 1 8 13 6 4
47 15 16 5 2 1 7
34 22 9 3
44 9 10 11 3 1 7
33 18 4 2 3 3
Вихід: fair
24 6 12 4
25 3 19
36 4 25 2
19 11 1 3
15 9 3
37 5 27
Вихід: weak
26 13
26 13
26 13
26 13
Вихід: trick
50 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
Вихід: weak
50 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
50 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
Вихід: trick
50 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
49 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
Вихід: fair
Вимоги:
- Якщо ви пишете функцію, вона може або читати зі стандартного вводу, або отримувати вхід як єдиний параметр рядка. Також функція може або роздрукувати вихід, або повернути його.
- Програма повинна бути запущена в Linux, використовуючи вільно доступне програмне забезпечення.
- У вихідному коді повинні використовуватися лише символи ASCII.
- Немає стандартних лазівки