#ZS4T1. 冬日画板(paintboard)

冬日画板(paintboard)

题目描述

莆二OJ的冬日画板活动正在如火如荼的进行中,关于冬日画板的底层原理,我们简化模型如下。

用户在进行 paintpaint (绘画) 操作的时候,会向服务器 API 发送 POST 请求。

POST 请求中会包括用户的 cookie 和选择绘画的横纵坐标和颜色 ( cookie 是服务器 1鉴权^1 以及每个用户的唯一标识,是一个长度为 1616 的字符串)。

如果 cookie 在数据库中无法找到,或者 POST 请求中的所绘画的横纵坐标错误,均会返回 Error

如果信息正确,服务器则会返回 Paint Successfully,并在服务器数据库中存储用户绘画的信息(在同一个像素点上新的颜色会覆盖旧的颜色)。

为降低难度,所绘画的横纵坐标错误的情况仅考虑所绘画的点是否在画板以内

用户在进行 boardboard (查询画板) 操作时候,若 cookie 错误,则返回 Error

若 cookie 正确,服务器会返回画板上面所有像素点的信息 (初始状态的画板都是白色,即为 00)。

现在请根据上述信息,请你来写出服务器的后端来响应用户的请求。


1鉴权^1:鉴权(authentication)是指验证用户是否拥有访问系统的权利。传统的鉴权是通过密码来验证的。这种方式的前提是,每个获得密码的用户都已经被授权。在建立用户时,就为此用户分配一个密码,用户的密码可以由管理员指定,也可以由用户自行申请。

输入格式

从文件 paintboard.in 中读入数据。

11 行给出画板的 xx , yy 轴的最大长度 maxxmax_x maxymax_y,以及用户的 cookiecookie 数量 nn 与用户的请求数 mm

接下来 nn 行给出数据库中的每个用户的 cookiecookie

接下来 mm 行给出用户的 POSTPOST 请求。

paintpaint 操作其格式为:paintpaintcookiecookiexxyycolorcolor

boardboard 操作其格式为:boardboardcookiecookie

输出格式

输出到文件 paintboard.out 中。

输出服务器的响应。

测试样例

4 4 2 6
2f4sung48c56aspn
5e5s2s5a72s4a5gg
board 2f4sung48888aspn
board 5e5s2s5a72s4a5gg
paint 5e5s2s5a72s4a5gg 1 1 2
board 2f4sung48c56aspn
paint 5e5s2s5a7888a5gg 1 1 2
paint 2f4sung48c56aspn 5 5 2
Error
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
Paint Successfully
2 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
Error
Error

样例 1 解释

第一个操作中 cookiecookie 在数据库中不存在,故输出 ErrorError

第二个操作中 cookiecookie 正确,返回画板信息 (初始状态的画板都是白色,即为 00)。

第三个操作中 cookiecookie 与 绘画的横纵坐标与颜色 正确,返回 PaintPaint SuccessfullySuccessfully

第四个操作中 cookiecookie 正确,返回画板信息。

第五个操作中 cookiecookie 在数据库中不存在,故输出 ErrorError

第六个操作中 所绘画的点超出画板范围,故输出 ErrorError

数据规模与约定

  • 对于 100%100\% 的数据保证: 0<n,m1000 < n,m \le 100 , 0<maxx1000 < max_x \le 100 , 0<maxy1000 < max_y \le 100 , 0<x,y,color1000 < x,y,color \le 100