这是一个较难的题目。题意分析:输入n个窗口m个鼠标落下的坐标,若鼠标落在了几个窗口上,那么优先输出位于上方的窗口,重叠是指几个窗口彼此压在一起,这样的话先输入的窗口反而会在最下面,输出了在上方的窗口后,要将该窗口移到最上层来。
思路分析:由于坐标杂,因此用结构体类型数据分别保存鼠标击点以及窗口的信息,关键要建立先键入的窗口反而在下面的这种映射关系。于是用一个int型数组将先输入的反而设置到最大的序号。将点到的窗口移到最上层也是只需调整这个序号数组即可。
#include <iostream>
using namespace std;
const int N=11;
struct{
int num;
int x1,y1,x2,y2;
}win[N];
struct{
int x,y;
}pointer[N];
int oder[N]={
0};
int main