拉面之窗
测试数据来自 system/1219
背景
每天中午的下课铃一响,浙江镇海中学的同学们都会冲出学校来附近的小饭馆吃饭,刹那间天昏地暗,飞砂走石,家家餐馆内都是一片黑压压的人 。馄饨店、饺子馆,在学校附近开一家红一家。身为镇海中学信息中心首席科学顾问兼资深信息学竞赛辅导老师Dennis看到了,他为了在业余时间方便学生,他租了学校附近的一家店面,雇了几个拉面师傅,开了一家“正宗兰州牛肉拉面馆”,生意还不错。
描述
为了高效地管理拉面店,Dennis给拉面店配了台电脑……
在一个春暖花开, 阳光明媚的上午, Dennis兴致勃勃地来到自己的拉面馆视察工作,突然他发现大徒弟光光在电脑上做Vijos的题目(原来拉面店里也卧虎藏龙),但光光总是开了一个题目看了一半,又马上打开另一个看看(难道题目太easy了,不屑于做?)。一会儿,桌面上出现了很多网页窗口,后来他有些题目看了一半不看了,过了一会儿又想再看看,于是产生了一个问题,这么多窗口,每次用鼠标点,还并不一定一次就点得到想要的窗口呢!于是他想让乐于助人的Dennis来写一个程序,解决他的困扰。可Dennis太忙了,只好由你代劳了。光光的要求是这样的:
给定n条指令(n <= 100);每条指令可能有下列四种情况;
1>新开一个窗口;
2>鼠标点击一个坐标;
3>关闭一个窗口;
4>拖动一个窗口;
请你告诉他通过这些指令,最后显示在桌面上最上面的那个窗口,如果此时桌上没有任何窗口,则输出Nothing。注:窗口是矩形(废话)。
格式
输入格式
数据第一行一个数n,表示下面有n条指令,每条指令对应四种情况:
1>新开一个窗口: 一行一共5个参数,第一个是一个字符串”Open”,第二个到第五个描述一个窗口的左下角和右上角x1, y1, x2, y2 (刚开始桌面是空白的,后开的窗口总是在先开的窗口上面,桌面的大小是无限的)
2>鼠标点击一个坐标:一行一共3个参数,第一个是一个字符串”Click”,第二、三个描述一个点击坐标x, y,若该坐标位于某个窗口内(如果有多个窗口,则只考虑最上面的那个),则把对应的窗口移至桌面最上面,若该坐标对应的是空白桌面,则忽略此次操作;
3>关闭一个窗口:一行一共3个参数,第一个是一个字符串”Close”,第二、三个描述一个点击坐标x, y,若该坐标位于某个窗口内(如果有多个窗口,也只考虑最上面的那个),则关闭对应的窗口,其他窗口不变。若该坐标对应的是空白桌面,则忽略此次操作;
4>拖动一个窗口:一行共5个参数,第一个是一个字符串”Move”, 第二、三个描述一个点击坐标x, y,第四、五个是位移变量a,b。若该坐标位于某个窗口内(如果有多个窗口,还是只考虑最上面的那个),则把对应的窗口按a,b平移,即左下角坐标变为x1+a,y1+b,右上角为x2+a,y2+b。同时把对应的窗口移至桌面最上面。若该坐标对应的是空白桌面,同样忽略此次操作;
注意:坐标和位移变量均为整数,绝对值小于10000,如果鼠标点在窗口的边上也算选中了那个窗口。每个参数之间用一个空格隔开。
输出格式
输出四个参数,x1,y1,x2,y2,表示当前桌面最上方的窗口对应的左上角和右下角,或者一行Nothing;
样例1
样例输入1
7
Open 1 1 5 5
Open 3 3 6 6
Click 2 2
Open 0 0 2 2
Move 4 4 1 1
Close 1 1
Click 20 20
样例输出1
2 2 6 6
限制
共10点,每点1秒。
提示
30%的数据,n<=10
100%的数据,n<=100
来源
fangyuhua&ycglovewxx