CF1531D.Редактируем Зингер | color

普及/提高-

通过率:0%

时间限制:1.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Немногие знают, что сотрудники ВКонтакте могут менять цвет подсветки в куполе знаменитого Дома Зингера, где расположена штаб-квартира ВКонтакте. Для этого нужно всего лишь отправить сообщение с цветом в специальный чат «Зингер | color», а бот его распознает и сменит подсветку. При этом на время городских мероприятий смена цвета блокируется.

Формально, бот обрабатывает три типа сообщений:

  • lock: заблокировать изменение цвета. Если оно и так заблокировано на данный момент, сообщение игнорируется.
  • unlock: разблокировать изменение цвета. Если оно и так разблокировано на данный момент, сообщение игнорируется.
  • red / orange / yellow / green / blue / indigo / violet: изменить цвет купола на заданный, если изменение цвета на данный момент не заблокировано.

Вам дана история сообщений, полученных ботом, в хронологическом порядке. Считайте, что перед получением первого сообщения купол подсвечивается голубым (blue), а изменение цвета не заблокировано.

В качестве эксперимента было решено поддержать в боте эффективную обработку редактирования сообщений. Вам дана последовательность пар вида (i,msg)(i, msg), означающих, что ii-е в хронологическом порядке сообщение было отредактировано и теперь имеет вид msgmsg. Обратите внимание, что редактироваться может любое сообщение, и при редактировании сообщения бот должен обработать всю историю сообщений заново (в частности, перед обработкой первого сообщения цвет купола голубой, а изменение цвета не заблокировано).

Определите, какой цвет будет у купола Дома Зингера до первой операции редактирования, а также после каждой операции редактирования.

很少有人知道,VKontakte(VK)的员工可以更改著名辛格大厦(Singer House)穹顶的灯光颜色——VK总部即坐落于此。只需向专用聊天室“Зингер | color”(辛格 | color)发送一条包含颜色名称的消息,机器人便会识别该消息并更改穹顶灯光颜色。不过,在城市举办活动期间,颜色更改功能会被临时禁用。

形式化地,机器人处理以下三类消息:

  • lock:锁定颜色更改功能。若当前已处于锁定状态,则忽略该消息;
  • unlock:解锁颜色更改功能。若当前已处于解锁状态,则忽略该消息;
  • red / orange / yellow / green / blue / indigo / violet:若当前未被锁定,则将穹顶灯光颜色更改为指定颜色。

现按时间顺序给出机器人接收到的一系列消息。初始状态下(即第一条消息到达前),穹顶灯光为蓝色(blue),且颜色更改功能处于未锁定状态。

作为一项实验,现决定在机器人中支持对消息编辑操作的高效处理。您将获得一系列形如 (i,msg)(i, \text{msg}) 的二元组,表示按时间顺序排列的第 ii 条消息已被编辑,其内容更新为 msg\text{msg}。请注意:任意一条消息都可能被编辑;每当某条消息被编辑后,机器人必须重新处理整段消息历史(特别地,每次重新处理时,第一条消息被处理前的状态均为:穹顶为蓝色,且颜色更改功能未锁定)。

请确定:在首次编辑操作发生之前,以及每次编辑操作完成之后,辛格大厦穹顶的灯光颜色分别为何。

输入格式

В первой строке задано одно целое число nn (1≤n≤1051 \le n \le 10^5) — число сообщений, полученных ботом.

В следующих nn строках заданы сообщения, полученные ботом, в хронологическом порядке, по одному сообщению в строке. Каждое сообщение — строка из следующего набора: lock, unlock, red, orange, yellow, green, blue, indigo, violet. Сообщения пронумерованы от 11 до nn.

В следующей строке задано одно целое число tt (1≤t≤1051 \le t \le 10^5) — число операций редактирования сообщений.

В следующих tt строках заданы операции редактирования в хронологическом порядке, по одной в строке. Каждая операция — пара из номера сообщения ii (1≤i≤n1 \le i \le n) и его нового содержимого msgmsg, также принадлежащего набору lock, unlock, red, orange, yellow, green, blue, indigo, violet.

第一行包含一个整数 nn(1≤n≤1051 \le n \le 10^5),表示机器人接收到的消息数量。

接下来的 nn 行按时间顺序给出机器人接收到的消息,每行一条消息。每条消息为以下字符串之一:lock、unlock、red、orange、yellow、green、blue、indigo、violet。消息编号从 11 到 nn。

下一行包含一个整数 tt(1≤t≤1051 \le t \le 10^5),表示编辑消息的操作次数。

接下来的 tt 行按时间顺序给出编辑操作,每行一个操作。每个操作由一个消息编号 ii(1≤i≤n1 \le i \le n)及其新内容 msgmsg 组成;其中 msgmsg 同样属于集合 lock、unlock、red、orange、yellow、green、blue、indigo、violet。

输出格式

Выведите t+1t+1 строку: цвет купола до первой операции редактирования, а также после каждой операции редактирования в хронологическом порядке.

输出 t+1t+1 行:穹顶在第一次编辑操作之前的颜色,以及每次编辑操作之后的颜色(按时间顺序)。

输入输出样例

  • 输入#1

    7
    red
    violet
    unlock
    red
    orange
    lock
    indigo
    6
    5 green
    6 lock
    6 yellow
    4 lock
    1 lock
    5 unlock

    输出#1

    orange
    green
    green
    indigo
    violet
    blue
    indigo
  • 输入#2

    1
    red
    8
    1 lock
    1 unlock
    1 blue
    1 unlock
    1 unlock
    1 lock
    1 yellow
    1 lock

    输出#2

    red
    blue
    blue
    blue
    blue
    blue
    blue
    yellow
    blue

输入解题思路,AI测评打分。不知道怎么写?

首页