Электронная промышленность Байтландии развивается и одна из компаний начала выпускать черно-белые квадратные экраны размером nXn пикселей.
Для экономии траффика был разработан специальный режим экрана, в котором при вызове
функции с параметрами row, col изменяется состояние всех пикселей в строке row и столбце col (то
есть черные пиксели становятся белыми, а белые черными). Пиксел на пересечении строки row
и col также меняет свое состояние.
Чтобы продемонстрировать возможности экономии траффика необходимо разработать последовательность вызовов функции для формирования определенного изображения. Изначально весь экран черный (все пиксели находятся в состоянии 0).
В первой строке входных данных записано число t - количество различных изображений, которые необходимо сформировать на экране. Затем описывается t блоков. Описание блока содержит число n - размер экрана, а затем n строк по n чисел 0 или 1 в каждой - изображение, которое
необходимо сформировать на экране.
В качестве ответа необходимо сформировать t блоков с параметрами вызова функции для формирования изображения на экране. Описание каждого блока должно состоять из числа k - количества вызовов функции для генерации изображения и k пар чисел row, col, задающих параметры
функции. Нумерация начинается с левого верхнего угла, с нуля.
t=3
t=7
function f(A,B)
{
if (A.length < B.length) {return false;}
var Result = false;
for ( var i = 0; i < A.length; i++) {
if ((B[0] === A[i]) && (A.length-i >= B.length))
{
Result = true;
for ( var j = 0; j < B.length; j++)
{
if (A[i+j] !== B[j])
{
Result = false;
break;
}
}
if (Result) {return true;}
}
}
return false;
}
Страничка для тестирования функции в приложении. Открывать через браузер (правой кнопкой мыши по файлу, "открыть с ", и выбрать браузер, или изменить расширение с txt на HTML, и просто открыть..)