Припустимо, ми визначаємо нескінченну матрицю Mна N^2 -> {0, 1}(де Nпочинається 1замість 0) таким чином:
M(1, 1)=0.Для кожного
x > 1,M(x, 1)=1якщоxє простим,0інакше.Для кожного
y > 1,M(1, y)=y-го доданка вThue-Morse sequence.Для кожного
x, y > 1,M(x, y)=M(x, y-1) + M(x-1, y) mod 2.
Лівий верхній 16x16розділ цієї матриці виглядає так (з xрядками та yстовпцями):
0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0
1 0 1 1 0 0 0 1 0 0 0 1 1 0 1 1
1 1 0 1 1 1 1 0 0 0 0 1 0 0 1 0
0 1 1 0 1 0 1 1 1 1 1 0 0 0 1 1
1 0 1 1 0 0 1 0 1 0 1 1 1 1 0 1
0 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1
1 1 0 0 0 0 1 0 0 0 1 1 0 0 0 1
0 1 1 1 1 1 0 0 0 0 1 0 0 0 0 1
0 1 0 1 0 1 1 1 1 1 0 0 0 0 0 1
0 1 1 0 0 1 0 1 0 1 1 1 1 1 1 0
1 0 1 1 1 0 0 1 1 0 1 0 1 0 1 1
0 0 1 0 1 1 1 0 1 1 0 0 1 1 0 1
1 1 0 0 1 0 1 1 0 1 1 1 0 1 1 0
0 1 1 1 0 0 1 0 0 1 0 1 1 0 1 1
0 1 0 1 1 1 0 0 0 1 1 0 1 1 0 1
0 1 1 0 1 0 0 0 0 1 0 0 1 0 0 1
Ваше завдання - створити програму, яка максимально точно оцінить значення довільного запису в цій матриці.
Ваша програма буде приймати два цілі числа xі yяк вхідні дані у будь-якій обраній вами формі, і повертатиметься M(x, y), яке буде або0 або 1.
Ваш код може бути написаний будь-якою мовою, але не повинен перевищувати 64 кілобайт (65,536 байт) розміру вихідного коду або 2 МБ (2 097 152 байт) загального обсягу використання пам'яті. Ваша програма повинна починатися з порожньої пам’яті (тобто вона не може завантажувати дані з іншого місця) та запускатись незалежно для кожного вводу (тобто вона не може зберігати загальні дані для декількох запусків). Ваша програма також повинна мати можливість оцінювати всі записи у верхньому лівому куті8192x8192 квадраті за розумну кількість часу.
Програма, яка оцінює більшість записів правильно у верхньому лівому 8192 x 8192квадраті, буде переможцем, а коротший код буде виконувати функції краватки.