Информатика

7 600 задачвместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
66864#66864
Маша очень любила строить башенки из кубиков в детстве, но теперь она уже взрослая, потому башенки из простых кубиков её не интересуют. Она купила детали для башенки, которые представляют собой блок 3*3*1, который очень легко описать матрицей 3 на 3, так как толщина блока всего 1 кубик.
Маше точно известно, что:
  •  при использовании всех блоков, можно гарантированно построить башенку, которая не будет иметь пустот, включая нижнюю и верхнюю границы;
  •  используя все блоки, можно построить башенку только одним и не более способами;
  •  при строительстве башенки блоки нельзя вращать;
  •  только два блока во всём наборе имеют сплошную верхнюю или же нижнюю границу;
  •  глубина пустот в блоке может состоять из 1 или 2 элементов;
  •  блоков, имеющих пустоты, которые нельзя покрыть при сборе башенки не существует.
Напишите программу, помогающую Маше определить, в каком порядке нужно строить башню, исходя из всех ограничений, написанных выше.

Входные данные
В первой строке подаётся число N (1 <= N <= 10) – количество блоков для башенки, далее на 3*N строках вводится по 3 цифры через пробел(0 – у блока отсутствует элемент в этой позиции, 1 – сам блок), представляющие из себя N блоков, доступных для строительства.
Нумерация блоков начинается с 1 и увеличивается при описании каждого последующего блока (то есть первый блок, второй и так далее).
Выходные данные
Вывести в ответе в одну строку через пробел каждый элемент – номера блоков в порядке сбора башни снизу-вверх.

Пояснение
Пример №2

 
66401#66401
Группа молодых энтузиастов "МэК" захотели посчитать сколько сантиметров проходит палец сотрудника колл-центра, когда тот набирает номер телефона клиента на циферблате. Для начального варианта программы достаточно считать сколько палец прошёл в одном из направлений, по горизонтали или по вертикали. Расстояние между центрами всех кнопок равно 1, считается, что всегда нажимается центр кнопки.
Расстояние кнопок по диагонали (45 градусов), например между "1" и "5" равно 1.4. Расстояние между Кнопками под 30 градусов, например между "1" и "6" равно 2,2. Расстояние между "1" и "0", а также между "3" и "0" равно 3.1. Начальная позиция пальца оператора всегда на той цифра с которой начинается номер телефона.

Формат входных данных
На вход программы поступает номер телефона, содержащий от 2 до 20 цифр. Также направления: 0 - горизонталь, 1 - вертикаль.
Формат выходных данных
На выходе программа выдаёт число, равное пройденному расстоянию. Например: номер телефона 8965, считаем горизонталь. Из 8 в 9 +1, из 9 в 6 нет движения по горизонтали, из 6 в 5 +1. Общее пройденное расстояние равно 2.
Циферблат:
123
456
789
0
66175#66175
Старшеклассник Дима собирает робота, который должен передвигаться по рельсам вокруг испытательного стенда. Всего робот умеет выполнять 12 различных команд, но для нас представляют интерес три из них, связанные с управлением манипулятором. Дима решил передавать роботу блоки инструкций в виде числа: робот получает число, переводит его в систему счисления с основанием 12 и выполняет соответствующие цифрам команды. Коды команд, отвечающих за манипуляторы робота, кратны четырём. На вход подаётся N чисел – блоков с наборами команд. В скольких блоках робот выполнил не менее M команд с манипулятором?

Формат ввода На вход программе в первой строке подается натуральное число N (N ≤ 10000) – количество наборов команд. Во второй строке подаётся целое неотрицательное число M (0 ≤ M ≤ 1000) – требуемое количество команд с манипулятором. Далее в N строках на вход подаётся по одному целому числу в диапазоне от 0 до 4*109 – блок команд, записанных в десятичной системе счисления.
Формат вывода Вывести одно целое число – в скольких блоках команд робот выполнил не менее M команд с манипулятором.
65998#65998
Профессор Чадов и аспирант Шлёпов оптимизируют производство октогена. Одним из важных компонентов для создания этой мощной взрывчатки является азотная кислота. Чтобы как можно меньше таскать сосуды с кислотой, лаборанты попросили аспиранта Шлёпова написать программу, которая будет рассчитывать, какие емкости надо принести со склада в лабораторию, чтобы выполнялись несколько условий:
  1. Объем азотной кислоты должен быть не меньше требуемого для работы;
  2. Объем азотной кислоты в лаборатории должен быть минимально возможным;
  3. При прочих равных следует предпочесть переноску меньшего количества емкостей;
Напишите программу, которая поможет лаборантам.

Формат ввода
В первой строке программы вводится натуральное число N (N ≤ 20) – количество емкостей с кислотой. Во второй строке указывается натуральное число V (0 ≤ V ≤ 200 л) – ограничение по объему. Далее в N строчках вводится по одному натуральному числу vi (vi ≤ 20 л) – объем емкости под номером i.
Формат вывода
Вывести в одной строке через пробел в порядке возрастания объемы емкостей, которые надо отнести в лабораторию, уложившись в заданные условия. Если это невозможно, вывести 0.
65996#65996
На курсы по изучению Python записалось N (0<N <= 100) человек. Необходимо составить расписание занятий. Для этого необходимо определить дни, когда на занятиях сможет присутствовать максимальное количество учащихся. Каждый учащийся заполнил специальную анкету, где указал дни, в которые он может посещать курсы. Пожелания были двух типов.
1) Дни недели. Обозначение: строка начиняется с буквы “w”; далее идет цепочка цифр без пробелов: 1 – понедельник, 2 – вторник, 3 - среда, 4 – четверг, 5 – пятница, 6 – суббота, 7 - воскресенье. Например, в строке “w134” – закодировано, что учащийся может проходить обучение по понедельникам (1), средам (3) и четвергам (4).
2) Чётные/нечётные даты. Обозначение: строка начиняется с буквы “d”; далее идет одна цифра: 1 – нечётные даты, 0 – чётные даты. Например, в строке “d1” – закодировано, что учащийся может проходить обучение по нечетным датам (1, 3, 5, 7, …, 29, 31).
Каждый учащийся высказал пожелание только одного типа.
Необходимо определить, сколько дней в период обучения таковы, что на занятиях может присутствовать максимальное количество учащихся.
Гарантируется, что дата начала меньше даты окончания обучения, что обучение начинается не ранее 1 января 2023 года. Период не превышает двух календарных лет. 01.01.2023 – воскресенье (остальные дни недели должна определять программа).

Входные данные:
Построчно.
Дата начала интервала обучения в формате dd.mm.yyyy
Дата окончания интервала обучения (включая этот день) в формате dd.mm.yyyy
N – количество учащихся.
В каждой последующей строчке закодированы пожелания учащихся (формат смотри выше).
Выходные данные:
Два числа через пробел.
Количество дней с максимальным количеством учащихся, планирующих посетить занятия.
Планируемое максимальное количество учащихся на занятии.
Примеры
Входные данные Выходные данные Примечание
1 02.01.2023
16.01.2023
5
w134
d0
w123
w15
d0
2 5 Все пятеро учащихся смогут присутствовать на занятиях 2 и 16 января 2023 года (два дня).
2 02.01.2023
16.01.2023
5
w134
d0
w123
w15
d1
3 4 На занятиях максимально может присутствовать только четверо из пятерых учащихся. Даты, когда это возможно: 2, 9 и 16 января 2023 года (три дня).
3 10.01.2023
13.01.2023
5
w135
d1
w13
w15
d1
2 4 А 11 и 13 января будет максимальное количество человек - 4 (два дня).
65994#65994
Группа исследователей управляет зондом. Команды установленному на зонде фотоаппарату подаются вместе с блоком иной информации. Каждый блок представляет собой набор цифр в шестнадцатеричной системе счисления (0123456789ABCDEF). Команда вычисляется на основе последней цифры троичной записи суммы цифр блока:
0: «Снимок».
1: «Снимок со вспышкой»
2: «Очистить память» – очищает память зонда, удаляя все сохраненные фотографии.
Определите максимальное количество фотографий, которые были единовременно удалены из памяти после выполнения n команд.

Формат ввода
В первой строке программе подается на вход число натуральное число n, не превышающее 1000.
Далее в каждой из n строк идет команда – набор цифр в шестнадцатеричной системе счисления (0123456789ABCDEF), длина команды не превышает 100 знаков.
Формат вывода
Вывести одно число – максимальное количество фотографий, которые были единовременно удалены из памяти после выполнения n команд.
65992#65992
Город имеет форму круга радиуса R с центром в точке (0,0).
Сеть метро состоит из N линий метро (часть линий или все проходят через город).
Линия метро - ломаная из отрезков прямых, вершины которых имеют целочисленные координаты. Линия метро не имеет самопересечений и может быть замкнутой. Во всех точках с целочисленными координатами, через которые проходят линии метро расположены станции метро .
Для каждой точки с целочисленными координатами определим параметр вес вершины. Вес вершины — это количество станций метро, расстояние до которых не более 1 (длины клетки).
Город разбит на кварталы. Квартал — это единичная клетка с целочисленными координатами вершин, хотя бы одна из которых находящаяся строго внутри города.
Для каждого квартала определим параметр доступность. Доступность квартала равна сумме весов вершин квартала (вершина квартала может быть вне города)
Найдите значение "доступности" для каждого квартала. Для каждой полученной "доступности" определите число кварталов, имеющих эту доступность.
Входные данные
В первой строке заданы значения R, N (4<R<201, 0<N<1001)
В следующих N строках заданы описания линий метро.
Каждая линия описывается следующим образом:
первое число в строке M равно количеству вершин ломаной, далее даны координаты вершин (по два числа на вершину).
Замкнутые ломаные определяются тем, что координаты начальной и конечной вершины совпадают.
Выходные данные
В первой строке выведите число K - количество различных значений "доступности" (включая нулевую).
В следующих K строках выведите по два числа - значение "доступности" и число кварталов, имеющих такое значение "доступности"

Примеры:

 
 
Входные данные Выходные данные Примечание
1 5 3
6 2 -4 -2 -4 -4 0 0 4 4 0 2 -4
4 -6 3 0 -1 2 -1 5 -4
3 5 4 0 -1 -6 -4
14
0 3
1 1
2 4
3 8
4 10
5 9
6 12
7 11
8 13
9 5
10 6
11 3
12 2
13 1
Город (рис. 1,2) расположен в круге радиуса 5 с центром в точке (0,0).
Сеть метро состоит из 6 линий метро (2 радиальных, 1 кольцевая):
6 2 -4 -2 -4 -4 0 0 4 4 0 2 -4 - кольцевая линия из 5 звеньев, 16 станций
4 -6 3 0 -1 2 -1 5 -4 - радиальная линия из 3 звеньев, 8 станций
3 5 4 0 -1 -6 -4 - радиальная линия из 2 звеньев, 9 станций
Есть три пересадки ( в вершинах (-3,1), (0,-1), (3,-2))
На рис.1 отмечены вершины, которые не являются станциями и
имеют не нулевой вес (треугольник - вес 1, крестик - вес 2, ромб - вес 3)
На рис.2 для всех городских кварталов указано значение параметра
доступности квартала.


 
65986#65986
На кафедре работает N (0<N <= 100) человек. Необходимо составить расписание дежурств по кафедре. Для этого необходимо определить в первую очередь проблемные рабочие дни (рабочими днями считаются все дни недели, кроме воскресенья), когда запланированных занятий ни у кого из сотрудников нет. Кроме того, важно знать дни, когда сотрудников на кафедре очень мало, поэтому помещение может быть закрыто (например, преподаватель ушел в аудиторию читать лекцию).
Для каждого сотрудника есть рабочее расписание. Расписание двух типов. Каждое кодируется особым образом.
  1.  Преподаватели работают по дням недели. Обозначение: строка начиняется с буквы “P”; далее идет цепочка цифр без пробелов: 1 – понедельник, 2 – вторник, 3 - среда, 4 – четверг, 5 – пятница, 6 – суббота. Например, в строке “P134” – закодировано, что преподаватель ведет занятие по понедельникам (1), средам (3) и четвергам (4).
  2.  Учебный персонал работает в зависимости от чётности/нечётности даты. Обозначение: строка начиняется с буквы “U”; далее идет одна цифра: 1 – нечётные даты, 0 – чётные даты. Например, в строке “U1” – закодировано, что лаборант работает по нечетным датам (1, 3, 5, 7, …, 29, 31).
Необходимо определить, сколько проблемных дней в период, на который составляется расписание.
Гарантируется, что дата начала меньше даты окончания периода, что дежурства начинаются не ранее 1 января 2023 года. Период не превышает двух календарных лет. 01.01.2023 – воскресенье (остальные дни недели должна определять программа).
Воскресенье – выходной для всех!

Входные данные
Построчно.
Дата начала периода в формате dd.mm.yyyy
Дата окончания периода (включая этот день) в формате dd.mm.yyyy
N – количество сотрудников.
В каждой последующей строчке закодированы персональные расписания преподавателей и учебного персонала (формат смотри выше).
Выходные данные
Число - количество дней, когда на кафедре никого нет.
На следующей строке – два числа через пробел: сколько дней на кафедре присутствует минимальное количество сотрудников и само минимальное количество сотрудников, когда кто-то есть на кафедре.
Примеры
Входные данные Выходные данные Примечание
1 09.01.2023
23.01.2023
5
P135
U0
P123
P15
U0
2
1 1
На кафедре никого не планируется 19 и 21 января 2023 года (два дня). Обратите внимание, что воскресенья не считаются!
А 17 января будет только один человек (один день).
2 09.01.2023
23.01.2023
5
P135
U0
P123
P15
U1
0
4 1
Каждый рабочий день на кафедре кто-то есть.
Минимальное количество людей на кафедре 1 человек. Таких присутственных дня четыре: 12, 14, 18 и 21 января.
3 10.01.2023
13.01.2023
5
P135
U1
2
2 4
На кафедре никого не планируется 10 и 12 января 2023 года (два дня).
А 11 и 13 января будет минимальное количество человек - 4 (два дня).
65960#65960
Старшеклассник Миша собирает робота, который должен передвигаться по рельсам вокруг испытательного стенда. Всего робот умеет выполнять 13 различных команд, но для нас представляют интерес три из них – «вперёд», «назад», «стой». Миша решил передавать роботу инструкции в виде цифр числа: робот получает число, переводит его в систему счисления с основанием 13 и выполняет соответствующие цифрам команды. Коды команд, отвечающих за изменение скорости робота, кратны шести.
На вход подаётся N чисел с наборами команд. Сколько раз робот изменит скорость, если считать, что он не встречает препятствий?

Формат ввода
На вход программе в первой строке подается натуральное число N (N ≤ 10000) – количество наборов команд. Далее в N строках на вход подаётся по одному целому числу в диапазоне от 0 до 4*109 – набор тринадцатеричных команд, записанных в десятичной системе счисления.
Формат вывода
Вывести одно целое число – сколько раз робот изменит скорость.
65959#65959
На уроке информатики Фоме задали задачу о проверке гипотезы Гольдбаха.
Условие задачи выглядело так:
Гипотеза Гольдбаха (не доказанная до сих пор) утверждает, что любое четное число (кроме 2) можно представить в виде суммы двух простых чисел.
Фома легко решил данную задачу методом поиска "первого решения".
Дома, Фома заметил, что во время отладки, он получал решения, в которых одно из чисел было не очень большим.
Так, для числа 1000000, он получил разложение 1000000=17+999983. Фома решил проверить, в чем сложность гипотезы Гольдбаха.
Для этого Фома придумал задачу:
Определим функцию g(n) = количеству разложений числа n в сумму двух простых чисел. (разложения, отличающиеся порядком слагаемых, считаются одинаковыми).
На отрезке натуральных чисел от A до B найдите чётное число x такое, что: g(x) кратно 5 и имеет минимальное значение среди всех g(x) кратных 5 на этом отрезке.
Решите задачу Фомы.

Входные данные
Границы отрезка A, B (два натуральных числа 5≤ A<B≤106 )
Выходные данные
- "Impossible" если для всех чётных x из отрезка [A;B] значение g(x) не кратно 5.
- два числа - x, g( x ) ( g(x) кратно 5 и минимальное для A≤ x≤B). Если таких x несколько, то выведите минимальное значение x.
Примеры
Входные данные Выходные данные Примечание
1 5 10 Impossible На отрезке всего три четных числа (6, 8, 10)
Число 8 =3+5 и других представлений нет (5+3 считается таким же как 3+5)
Для 10 есть два представления (3+7 и 5+5)
Таким образом значений x, при которых g(x) кратно 5 нет.
2 20 60 48 5 g(x) может принимать значения меньшие 3 (g(20)=2)
g(x)=5 для x из множества {48, 54}. 48 -минимальное значение
3 2000 2005 Impossible  

Строка формируется из заглавных английских букв следующим образом

  1. Начинаем с "A".

  2. Каждый следующий шаг: к предыдущей строке приписываем новую строку, в которой каждый символ предыдущей строки сдвинут вправо на 2 по алфавиту (A→C, B→D, ..., Y→A, Z→B).

Вот первые четыре шага:

Шаг 1: A
Шаг 2: 
Шаг 3: AССE 
Шаг 4: ACCECEGG 

Какой символ стоит на 50-й позиции после 7-го шага?

Первый символ слева стоит на позиции 1. 

 

 

Строка формируется из заглавных английских букв следующим образом

  1. Начинаем с "A".

  2. Каждый следующий шаг: к предыдущей строке приписываем новую строку, в которой каждый символ предыдущей строки сдвинут вправо на 1 по алфавиту (A→B, B→C и т. д. Z→A).

Вот первые четыре шага:

Шаг 1: A
Шаг 2: AB
Шаг 3: ABBC 
Шаг 4: ABBCBCCD 

Какой символ стоит на 100-й позиции после 8-го шага?

Первый символ слева стоит на позиции 1. 

Строки, состоящие из последовательностей цифр, формируются следующим образом. Первая строка состоит из одной единицы. Каждая из последующих строк создается следующим действием: берется предыдущая строка и после каждой ее цифры вставляется цифра на единицу большая и затем еще раз исходная цифра. Вот первые 3 строки, созданные по этому правилу:
(1) 1
(2) 121
(3) 121232121
(4) 121232121232343232121232121
Какая цифра будет стоять в позиции 1094 в строке (9)?

Первая цифра слева стоит на позиции 1 
Строки, состоящие из последовательностей цифр, формируются следующим образом. Первая строка состоит из четырех единиц. Каждая из последующих строк создается следующим действием: берется предыдущая строка и перед каждой ее цифрой вставляется цифра на единицу большая. Вот первые 3 строки, созданные по этому правилу:
(1) 1111
(2) 21212121
(3) 3221322132213221
Какая цифра будет стоять в позиции 479 в строке (9)?

Первая цифра слева стоит на позиции 1 
Строки, состоящие из последовательностей цифр, формируются следующим образом. Первая строка состоит из четырех единиц. Каждая из последующих строк создается следующим действием: берется предыдущая строка и после каждой ее цифры вставляется цифра на единицу большая. Вот первые 3 строки, созданные по этому правилу:
(1) 1111
(2) 12121212
(3) 1223122312231223
Какая цифра будет стоять в позиции 479 в строке (9)? 

Первая цифра слева стоит на позиции 1 
Строки, состоящие из последовательностей цифр, формируются следующим образом. Первая строка состоит из четырех единиц. Каждая из последующих строк создается следующим действием: берется предыдущая строка и после каждой ее цифры вставляется цифра на единицу большая. Вот первые 3 строки, созданные по этому правилу:
(1) 1111
(2) 12121212
(3) 1223122312231223
Какая цифра будет стоять в позиции 100 в строке (9)?

Первая цифра слева стоит на позиции 1 

Радиоуправляемый робот умеет перемещаться по клетчатому полю размером \(n \times m\) (\(n\) строк и \(m\) столбцов) и красить клетки в один из четырех цветов (красный, зеленый, синий и белый). Будем обозначать клетку на пересечении \(i\)-й сверху строки и \(j\)-го слева столбца как \((i, j)\).

Робот выполняет команды пользователя, при этом перемещаясь по полю в соответствии с заданными настройками и ограничениями.

Настройки представляют собой матрицу \(S\) размера \(n \times m\), каждый элемент которой — либо \(\varnothing\), либо пара из координат клетки и цвета. Если \(S_{i,j} = ((i', j'), c)\), то после того, как робот красит клетку \((i, j)\) в какой-либо цвет, он сразу же перемещается в клетку \((i', j')\) и красит ее в цвет \(c\). Если для новой покрашенной клетки \(S_{i',j'} \neq \varnothing\), процесс продолжается по тем же правилам.

Ограничения бывают двух типов:

  1. ограничение на минимальное требуемое число клеток цвета \(c\);

  2. запрет наличия на поле квадрата \(2 \times 2\), покрашенного цветами \(\begin{pmatrix} c_{1,1} & c_{1,2} \\ c_{2,1} & c_{2,2} \end{pmatrix}\).

Пользователю доступны следующие команды для взаимодействия с роботом:

  1. <<fill \(i\) \(j\) with \(c\)>> — закрасить клетку \((i, j)\) в цвет \(c\), после чего выполнять действия в соответствии с настройками; процесс останавливается, когда

    • очередное перемещение привело робота за границу поля;

    • очередное перемещение привело робота в клетку, которую он уже красил в процессе выполнения текущей команды;

    • для очередной клетки \(S_{i',j'} = \varnothing\);

    • с очередной покраской перестанет выполняться какое-то из ограничений.

    Обратите внимание, что если первая же покраска клетки \((i, j)\) в цвет \(c\) приводит к нарушению какого-то из ограничений, робот остановится сразу же, не покрасив ни одну клетку.

  2. <<at-least \(x\) \(c\)>> — выставить ограничение на минимальное число клеток цвета \(c\) в \(x\). Если в настоящий момент на поле меньше \(x\) клеток цвета \(c\), команда игнорируется и ограничение не меняется. Для каждого цвета в каждый момент времени действует только последнее введенное на него ограничение на число клеток.

  3. <<no-squares \(c_{1,1}\) \(c_{1,2}\) \(c_{2,1}\) \(c_{2,2}\)>> — запретить появление квадратов \(2 \times 2\), раскрашенных цветами \(\begin{pmatrix} c_{1,1} & c_{1,2} \\ c_{2,1} & c_{2,2} \end{pmatrix}\). Если в настоящий момент на поле уже есть квадрат, раскрашенный таким образом, команда игнорируется и ограничение не добавляется.

  4. <<allow-squares \(c_{1,1}\) \(c_{1,2}\) \(c_{2,1}\) \(c_{2,2}\)>> — аналогично, отменить запрет на раскрашенные соответствующим образом квадраты \(2 \times 2\), если такой запрет сейчас есть.

  5. <<move \(i\) \(j\) to \(i'\) \(j'\) \(c\)>> — выставить настройки для клетки \((i, j)\) в значение \(((i', j'), c)\), где \((i', j')\) — клетка, в которую надо переместиться, а \(c\) — цвет, в который затем надо ее покрасить.

  6. <<no-move \(i\) \(j\)>> — выставить настройки для клетки \((i, j)\) в значение \(\varnothing\), соответствующее отсутствию перемещения после покраски клетки \((i, j)\).

Еще раз повторим, что робот никогда не красит одну и ту же клетку дважды во время исполнения одной команды, а также останавливается до момента первого нарушения какого-либо ограничения. Например, если \(S_{1,1} = ((1, 2), \mathtt{red})\), \(S_{1,2} = ((2, 2), \mathtt{blue})\), \(S_{2,2} = ((2, 1), \mathtt{green})\) и \(S_{2,1} = ((1, 1), \mathtt{red})\), то при поступлении команды <<fill \(1\) \(1\) with blue>>, робот покрасит \((1, 1)\) в синий, \((1, 2)\) в красный, \((2, 2)\) в синий и \((2, 1)\) в зеленый. Затем робот остановится, так как клетка \((1, 1)\) уже была покрашена при исполнении этой команды.

Изначально все настройки равны \(\varnothing\), никакие ограничения не введены, а все клетки поля покрашены в белый цвет. Вам дан список из \(q\) команд пользователя, которые были последовательно отправлены роботу. Выведите раскраску поля после применения всех этих команд.

Формат входных данных
В первой строке записано целое число \(t\) (\(1 \le t \le 1000\)) — число наборов входных данных в тесте.

В первой строке каждого набора данных даны три целых положительных числа \(n\), \(m\) и \(q\) — размеры поля и число команд. Гарантируется, что сумма \(n \cdot m \cdot q\) по всем наборам входных данных не превосходит \(10^5\).

В следующих \(q\) строках дано описание команд, посланных роботу в формате, описанном в условии. Цвета задаются строками <<red>> (красный), <<green>> (зеленый), <<blue>> (синий) и <<white>> (белый).

Формат выходных данных
Для каждого набора входных данных выведите итоговую раскраску поля, полученную после обработки всех команд. Для обозначения красного, зеленого или синего цвета используйте первую букву его английской записи (‘r’, ‘g’ или ‘b’); для обозначения белого цвета используйте символ ‘.’.


Примечание

В первом примере из условия

  1. Команда <<fill 1 1 with red>> красит \((1, 1)\) в красный, после чего из-за \(S_{1,1} = ((2, 1), \mathtt{red})\) клетка \((2, 1)\) тоже красится в красный, а из-за \(S_{2,1} = ((3, 1), \mathtt{red})\) затем и \((3, 1)\) красится в красный.

  2. При выполнении <<fill 2 1 with green>> робот красит \((2, 1)\) в зеленый. \(S_{2,1}\) в этот момент уже равно \(((2, 2), \mathtt{blue})\), поэтому после этого клетка \((2, 2)\) должна быть покрашена в синий, но это бы нарушило ограничение <<at-least 3 white>>, поэтому процесс останавливается до этого.

  3. После этого поле выглядит как

    r.
    g.
    r.
  4. Затем <<fill 2 2 with R>> должен покрасить \((2, 2)\) в красный (ограничение на число белых уже снято), но это бы привело к получению квадрата с цветами r.gr, который запрещен, поэтому выполнение команды сразу останавливается.

  5. Последняя команда покраски <<fill 2 2 with B>> выполняется. После чего, в соответствии с \(S_{2,2} = ((1, 2), \mathtt{green})\), клетка \((1, 2)\) красится в зеленый.

  6. Итоговый рисунок:

    rg
    gb
    r.
Поделиться
Класснуть