OJ现已增加邮箱找回密码功能,还没有绑定邮箱的同学们请抓紧时间,以免密码丢失无法找回


问题1166--学生信息管理系统

1166: 学生信息管理系统

时间限制: 2 Sec  内存限制: 48 MB
提交: 124  解决: 7
[提交] [状态] [讨论版] [命题人:]

题目描述

如题,你需要实现一个学生信息管理系统,为了简化操作只记录学号x、班级y、姓名z三种信息。并实现以下5种操作。

1:插入一个学生信息 学号x 班级y 姓名z,不会出现重复学号或重复班级且重名的情况 。
2:删除一个学生信息 按学号x班级y 姓名z,若信息不存在输出"Not find"。 
3:查找上一个学生信息  学号x 或 班级y 姓名z,输出上一个同学的对应信息,若信息不存在输出"Not prev",保证输入信息存在。  
4:查找下一个学生信息  学号x 或 班级y 姓名z,输出下一个同学的对应信息,若信息不存在输出"Not next",保证输入信息存在。  
5:查找两个学生学号之间有多少个人 班级y1 姓名z1 班级y2 姓名z2,保证两个学生信息存在且不相同。 

3、4号操作对于学号为升序排列学号的上一个或下一个,对于班级和姓名可以看作拼接在一起的字符串字典序顺序的上一个或下一个。
为了模拟真实情况,所有数据在输入之前都是未知的(防止某些同学做一些奇怪的操作) ,所以对于每次输入的数据都需要进行解密操作。 
对于输入的学号、班级、姓名中的每位数字number,字母alpha都进行以下操作: 

number = ((number - '0') ^ lastans) % 10 + '0' 
alpha = ((alpha - 'a') ^ lastans) % 26 + 'a' 

引号的内容表示数字0和小写字母a的ascii,lastans表示最后一次3、4操作有效结果对应的学号或5操作的结果,初始lastans为0。 

输入

第一行一个整数n表示操作次数,1 <= n <= 2e5。
接下来n行一个整数op表示操作类型,接着输入若干信息,学号x,班级y,姓名z,1 <= op <= 5。 
学号x固定6位且为纯数字串,从000000至999999。
班级y固定6位,仅包含数字或小写字母。
姓名z为1到10位字母串,仅包含小写字母。

输出

对于每种操作输出对应的提示或结果。

样例输入 Copy

13
1 123456 aaaaaa a
1 234567 dddddd d
1 345678 cccccc c
1 456789 bbbbbb b
1 567890 eeeeee e
3 123456
3 345678
4 llllll l
4 llllll l
5 pppppp p llllll l
2 107654
2 cccccc c
5 dddddd d hhhhhh h

样例输出 Copy

Not prev
234567
bbbbbb b
Not next
3
1

提示

样例解密后的真实操作:
13
1 123456 aaaaaa a
1 234567 dddddd d
1 345678 cccccc c
1 456789 bbbbbb b
1 567890 eeeeee e
3 123456
3 345678
4 aaaaaa a
4 eeeeee e
5 aaaaaa a eeeeee e
2 234567
2 bbbbbb b
5 aaaaaa a eeeeee e

来源/分类