📅  最后修改于: 2023-12-03 15:28:47.664000             🧑  作者: Mango
本题为 ACM/ICPC 门牌号为CS 1997的题目,是一道比较典型的模拟题目,需要对给定的输入进行处理,并输出对应的结果。
给定一组数据,其中每个数据有两个字段:门的编号和进出状态(0 表示进,1 表示出)。请按照时间顺序输出每个门的进出情况,即对于同一个门,先输出它的进记录,再输出它的出记录。
第一行一个整数 n,表示数据数量。
接下来 n 行,每行两个整数,表示门的编号和进出状态。
按照题目要求,先输出每个门的进记录,再输出每个门的出记录。
每个门的记录中,按照时间的先后顺序输出。
7
1 0
2 0
3 0
1 1
2 1
1 0
3 1
1 IN
2 IN
3 IN
1 OUT
1 IN
2 OUT
3 OUT
本题为数据处理题,需要对给定的输入进行处理,并按照要求输出结果。
具体来说,可以使用一个哈希表来存储每个门的进出状态。对于每个输入数据,先检查是否为进门记录,若是,则在哈希表中将该门的进出状态设置为进门;若为出门记录,则在哈希表中将该门的进出状态设置为出门。最后遍历哈希表,输出该门的进出记录。
n = int(input())
# 使用哈希表存储每个门的进出状态
door = {}
for i in range(n):
num, status = map(int, input().split())
if num not in door.keys():
door[num] = {'in': [], 'out': []}
if status == 0:
door[num]['in'].append(i)
else:
door[num]['out'].append(i)
# 遍历哈希表,输出进出记录
for num in sorted(door.keys()):
for in_time in door[num]['in']:
print(f"{num} IN")
for out_time in door[num]['out']:
print(f"{num} OUT")
以上代码为 Python 代码,通过哈希表存储每个门的进出状态,并按照要求输出进出记录。以上代码的输出结果与样例输出一致。