问题 4480 --谁动了Scofield的电脑

4480: 谁动了Scofield的电脑

时间限制: 1 Sec  内存限制: 256 MB
提交: 0  解决: 0
[提交][状态][讨论版][命题人:]

题目描述

最近Scofield感觉有人在他不在偷偷的潜入他的电脑,偷看他的一些重要文件。他的越狱计划就可能就此被发现。为了让计划成功,他需要把这些人揪出来。 Scofield发现了几个嫌疑人。还有他们潜入电脑后喜欢做的一些小小的改动,于是他决定要开始分析他的文件看哪些文件被谁修改了。 现在有N个嫌疑犯,他们喜欢在文件不同的位置上做作有些手脚。他们总喜欢在2进制的内存里改。Scofield要比对文件看和原来的文件相比的不同,判断看是谁动了这个文件。一个文件只可能有一个人偷偷的动过了。

输入

第一行表是有N<=100个嫌疑犯 接下去的N行表示每个人的修改喜好 第一个字母表示他的喜好类型 a表示他喜欢把哪些位改成1,如果其中有位置已经是1,则仍然为1,接着的一个输入M表示有M位 随后有M个数表示他们喜欢在32bit中的哪些位做修改(他会同时改动所有他喜欢的位置)。 b表示他喜欢把哪些位改成0,如果其中有位置已经是0,则仍然为0,接着的一个输入M表示有M位 随后有M个数表示他们喜欢在32bit中的哪些位做修改。(他会同时改动所有他喜欢的位置) c表示他喜欢把哪些位改成和原来不一样,接着的一个输入M表示有M位 随后有M个数表示他们喜欢在32bit中的哪些位做修改。 接着每一行两个整数表示每个文件原来的数据和现在的数据。用10进制表示。最大不超过31bit。用他可以来检验有没被动过。(他会同时改动所有他喜欢的位置) 程序以-1结束 注意:位从右边开始编号,编号从1开始,即没有零位。

输出

每个文件输出一行。如果知道是谁动过则输出他是那个人的编号。 如果多个人有嫌疑,则默认是前面编号的人动的,因此当有两种以上不同改动得到的结果相同时,选择编号较小的输出。 如果不知道是谁动过则输出” Unknown”. 如果没有,则输出”Safe”

样例输入

4<br/>a 1 1<br/>a 1 2<br/>a 2 1 2<br/>b 3 1 2 3<br/>4 5<br/>4 4<br/>4 8<br/>4 0<br/>4 7<br/>-1

样例输出

1<br/>Safe<br/>Unknown<br/>4<br/>3<br/>

提示

位操作。
注意:用到位操作的&,|,^,<<,>>

来源

 

[提交][状态]