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")
posted @ 2020-07-03 14:33  博0_oer~  阅读(13)  评论(0编辑  收藏  举报