Codeforces Round 302 (Div. 2) |
---|
Закончено |
Карта некоторого объекта представляет из себя клетчатое поле, состоящее из n строк и n столбцов. Каждая клетка изначально занята морем, но вы можете засыпать песком некоторые из клеток клетчатого поля таким образом, чтобы на карте образовалось ровно k островов. Объединим набор клеток с песком в остров, если из каждой из них можно добраться до каждой из них, перемещаясь только по клеткам с песком, и переходя из клетки с песком в соседнюю с ней по стороне клетку с песком. Клетки называются соседними по стороне, если у них есть общая горизонтальная или вертикальная сторона. Легко видеть, что разные острова не могут пересекаться по клеткам (иначе бы они в объединении давали больший остров).
Найдите способ засыпать некоторые клетки песком таким образом, чтобы на карте n × n образовалось ровно k островов, либо сообщите, что такого способа не существует.
В единственной строке записано два целых положительных числа n, k (1 ≤ n ≤ 100; 0 ≤ k ≤ n2) — размер карты и количество островов, которые должны образоваться.
Если искомого ответа не существует, выведите «NO» (без кавычек) в единственной строке. Иначе, выведите «YES» в первой строке. В следующих n строках выведите описание карты. Каждая из строк описания должна состоять только из символов 'S' и 'L', где 'S' обозначает клетку, занятую морем, а 'L' обозначает клетку, засыпанную песком. Кроме того, длина каждой строки описания должна быть равна n.
Если существует несколько ответов, разрешается вывести любой.
Максимизировать размер островов не требуется.
5 2
YES
SSSSS
LLLLL
SSSSS
LLLLL
SSSSS
5 25
NO
Название |
---|