Олимпиадный тренинг

Задача . B. Море и острова


Карта некоторого объекта представляет из себя клетчатое поле, состоящее из n строк и n столбцов. Каждая клетка изначально занята морем, но вы можете засыпать песком некоторые из клеток клетчатого поля таким образом, чтобы на карте образовалось ровно k островов. Объединим набор клеток с песком в остров, если из каждой из них можно добраться до каждой из них, перемещаясь только по клеткам с песком, и переходя из клетки с песком в соседнюю с ней по стороне клетку с песком. Клетки называются соседними по стороне, если у них есть общая горизонтальная или вертикальная сторона. Легко видеть, что разные острова не могут пересекаться по клеткам (иначе бы они в объединении давали больший остров).

Найдите способ засыпать некоторые клетки песком таким образом, чтобы на карте n × n образовалось ровно k островов, либо сообщите, что такого способа не существует.

Входные данные

В единственной строке записано два целых положительных числа n, k (1 ≤ n ≤ 100; 0 ≤ k ≤ n2) — размер карты и количество островов, которые должны образоваться.

Выходные данные

Если искомого ответа не существует, выведите «NO» (без кавычек) в единственной строке. Иначе, выведите «YES» в первой строке. В следующих n строках выведите описание карты. Каждая из строк описания должна состоять только из символов 'S' и 'L', где 'S' обозначает клетку, занятую морем, а 'L' обозначает клетку, засыпанную песком. Кроме того, длина каждой строки описания должна быть равна n.

Если существует несколько ответов, разрешается вывести любой.

Максимизировать размер островов не требуется.


Примеры
Входные данныеВыходные данные
1 5 2
YES
SSSSS
LLLLL
SSSSS
LLLLL
SSSSS
2 5 25
NO

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя