CCF认证模拟-201403-2-窗口-python
题目
思路
将所有窗口信息放入一个list,规定最后放入的窗口信息为最上层窗口,依次向前为前面窗口
再定义一个相同的list1,使之前的list进行窗口变换,list1用于查看顶层窗口的索引值
若一个点不在最上层窗口,则进入下一层,以此类推,直到点位于某一窗口
此时相当于将这一窗口与原来最顶层的窗口进行了换位
此处需要理解题目中所给定的 剩余窗口的层次顺序不变 所以是直接与最顶层换位置
此题目并不是一个一个窗口去进行尝试,直到找到位于最上层的窗口
如果题目是这样,那么就需要将正确层次的 前几层 进行 倒序 存入列表,可以略微增加题目难度
代码实现
a = input().split()
# 窗口
b = int(a[0])
# 点
c = int(a[1])
w_list = []
w_list1 = []
d_list = []
for i in range(b):
d = input().split()
w_list.append(d)
w_list1.append(d)
for j in range(c):
e = input().split()
d_list.append(e)
for i in range(c):
g = d_list[i][0]
h = d_list[i][1]
for j in range(1, int(b)+1):
if int(w_list[b-j][0]) <= int(g) <= int(w_list[b-j][2]) and int(w_list[b-j][1]) <= int(h) <= int(w_list[b-j][3]):
print(w_list1.index(w_list[b-j])+1)
x = w_list[b-1]
w_list[b-1] = w_list[b-j]
w_list[b-j] = x
break
else:
print("IGNORED")