14099: Зворотня розробка-Reverse Engineering-USACO2022DecBronze


Відправити розв'язок

Бали: 100 (partial)
Time limit: 2.0s
Memory limit: 500M

Authors:
Problem type
Allowed languages
Brain****, C, C++, Java, Pascal, Python, v8js

Ельза має програму, яка отримує на вхід масив з \(N\) (\(1\le N\le 100\)) змінних \(b[0],\dots,b[N-1]\), кожна з яких дорівнює 0 або 1 і повертає результат застосовуючи послідовність операторів if/else if/else, вказану на вході. Кожен оператор перевіряє значення не більше однієї змінної та повертає 0 або 1. Прикладом такої програми може бути:

if (b[1] == 1) return 1;
else if (b[0] == 0) return 0;
else return 1;

Наприклад, якщо вхідні дані в цю програму є "10" (тобто \(b[0] = 1\) і \(b[1] = 0\)), тоді вивід має бути 1

Ельза повинна сказати правильну відповідь для \(M\) (\(1\le M\le 100\)) різних входів. Бессі зараз намагається зробити "реверс інжиніринг" для програми Ельзи. На жаль, Ельза може і збрехати - тобто не існує програми виду зазначеного вище, яка виведе відповіді, які сказала Ельза.

Для кожного з \(T\) (\(1\le T\le 10\)) підтестів визначіть, брехала Ельза чи ні.

Формат вхідних даних

Перший рядок містить \(T\), кількість підтестів.

Кожен підтест починається з двох цілих чисел \(N\) і \(M\), за якими слідують \(M\) рядків, кожен із яких містить \(N\) 0 і один представляють введення, тобто. значення \(b[0] \ldots b[N-1]\)) та один додатковий символ (0 або 1), що представляє відповідь. Підтести розділені порожніми рядками.

Формат вихідних даних

Для кожного тесту виведіть "OK" або "LIE" на окремому рядку.

Приклад вхідних даних

4

1 3
0 0
0 0
1 1

2 4
00 0
01 1
10 1
11 1

1 2
0 1
0 0

2 4
00 0
01 1
10 1
11 0

Приклад вихідних даних

OK
OK
LIE
LIE

Це коректна програма для першого підтесту:

if (b[0] == 0) return 0;
else return 1;

Інша коректна програма для нього ж:

if (b[0] == 1) return 1;
else return 0;

Коректна програма для другого підтесту:

if (b[1] == 1) return 1;
else if (b[0] == 0) return 0;
else return 1;

Очевидно, що немає коректної програми для 3-го підтесту, тому що коректна програма для однакових вводів завжди дає той самий відповідь.

Можна довести, що немає коректної програми для останнього підтесту.

ОЦІНЮВАННЯ:

  • У тестах 2 та 3 \(N = 2\).
  • У тестах 4 та 5 \(M = 2\).
  • У тестах 6 – 12 немає додаткових обмежень.

Коментарі

Ще немає коментарів.