# interview **Repository Path**: qnxg/interview ## Basic Information - **Project Name**: interview - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2021-10-17 - **Last Updated**: 2021-10-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 易千的人员报名系统 最近易千网络文化工作室开始向某大学招收同学。因为同学们积极参与,报名人数过多,原有的报名系统需要进行升级。现有方案如下,同学的报名信息需要收集学号和姓名,易千今年拟招收 n 名程序同学,目前有很多名同学报名,同时,同学每天可以打卡,增加自己的报名意愿,为简化设计,打卡和报名采用同一个接口,同时打卡可以修改自己的信息.当易千已经招到n名同学时,再次招收的同学会把最不活跃最久的同学移除,给更加感兴趣的同学机会。但是,同时易千的管理员发现,有一部分同学恶意刷自己的活跃度,因此,管理员会手动剔除一部分同学。假设 "IN" 表示报名/修改,"OUT"表示剔除,opt表示操作类型。管理员可以随时用"LOOK"指令查看同学学号对应的姓名,未查到则输出"ERROR"。假设共有m次操作,并且管理员剔除的学生的学号一定是存在的.最后应当输入剩余的同学学号(顺序无关紧要) ## 输入输出如下 第一行输入n,m (int) 后续m行 输入操作类型 opt 如果 opt=="IN" 则后续输入为 stuid(学号) name(姓名) //代表该学号对应的同学报名或者修改报名 活跃度+1 如果 opt == 'OUT' 则后续输入为 stuid (学号) //代表管理员提出了该学号的同学 如果 opt == 'LOOK' 则后续输入为 stuid (学号) //代表管理员查该学号对应的姓名 ## 示例 ### 输入示例 3,11 //招收3名同学 共有11个操作 IN 123 wjq //第1名同学的学号是123 姓名是wjq IN 234 wjq1 //第2名同学的学号是234 姓名是wjq1 LOOK 999 //查看学号999的同学的信息,不存在 输出"ERROR" LOOK 123 //查看学号123的同学的信息, 输出"wjq" IN 345 wjq2 //第3名同学的学号是356 姓名是wjq2 IN 444 wjq3 //第4名同学的学号是444 姓名是wjq3,此时系统里已经有3名同学,需要找到最不活跃最久的同学,此时前三名同学的活跃度都是1,最久的同学是123,故移除123同学,加入444同学 LOOK 123 //查看123同学的信息,不存在 输出"ERROR" IN 234 wjq4 //第5名同学的学号是234,姓名是wjq4,发现是原有的同学打卡,同时修改了自己的姓名,活跃度++ IN 888 wjq6 //第6名同学加入,此时已经有3名同学,分别是 234 345 444,234同学的活跃度是2,345和444同学的活跃度都是1,移除最久未活跃的345同学,加入888同学 LOOK 345 //查看345同学的信息,不存在,输出 “ERROR” IN 777 wjq7 //777同学加入,此时系统里的同学是 234 444 和888 ,最不活跃的最久的同学是444,移除444,加入777同学 ### 输出示例 根据以上分析 ERROR wjq ERROR ERROR 234,wjq4 888,wjq6 777,wjq7 --- 温馨提示:以上题目仅为同学的提升题,意在观察同学们的思考能力和解决问题的能力。你可以采用任何方式(包括但不仅限于百度)解决该问题,或者解决该问题的一部分。提出自己的解决问题的思路也是可以的。可以采用任意语言,伪代码或者真实可用的程序都可以,不是硬性要求,仅为了观察同学的意愿和动手水平.