前言
你好啊,我是努力奔跑的追梦人~我始终相信着未来,一分耕耘一分收获。
提示:以下是本篇文章正文内容,所有题解均使用 C/C++ 编程语言。
#include <bits/stdc++.h>
using namespace std;
const int N=10;
struct{
int id;
int x1, x2, y1, y2;
}win[N];
struct{
int x, y;
}point[N];
int order[N];
int main(){
// freopen("1.txt", "r", stdin);
int n, m;
cin >> n >> m;
//输入窗口位置
for (int i=0; i<n; i++){
win[i].id = i+1;
cin >> win[i].x1 >> win[i].y1 >> win[i].x2 >> win[i].y2;
}
//输入点击位置
for (int i=0; i<m; i++){
cin >> point[i].x >> point[i].y;
}
//初始化窗口顺序,第一个表示顶层
for (int i=0; i<n; i++){
order[i] = n-1-i;
}
//模拟鼠标点击
int winno;//鼠标点击的窗口
int temp;
for (int i=0; i<m; i++) {
winno = -1;//-1表示没有点击到任何窗口
for (int j=0; j<n; j++){
if (point[i].x>=win[order[j]].x1 && point[i].x<=win[order[j]].x2 &&
point[i].y>=win[order[j]].y1 && point[i].y<=win[order[j]].y2){
winno = win[order[j]].id;
//调整窗口顺序:被点击的窗口放到首位,在它之前的窗口后移
temp = order[j];
for (int k=j; k>0; k--){
order[k] = order[k-1];
}
order[0] = temp;
break;
}
}
if (winno == -1) cout << "IGNORED" << endl;
else cout << winno << endl;
}
return 0;
}