3198. 窗口 - AcWing题库
每次点击完之后把点击的那个窗口放到数组末尾。
#include <bits/stdc++.h> using namespace std; const int N = 20; struct window{ int x1,y1,x2,y2; int id; }a[N]; int n,m; int get(int x,int y)//这里单独用函数处理好写 { for(int i=n;i;i--) { if(x>=a[i].x1&&x<=a[i].x2&&y>=a[i].y1&&y<=a[i].y2) return i; } return 0; } int main() { cin>>n>>m; for(int i=1;i<=n;i++) { cin>>a[i].x1>>a[i].y1>>a[i].x2>>a[i].y2; a[i].id = i; } while(m--) { int x,y; cin>>x>>y; int t = get(x,y); if(!t) cout<<"IGNORED"<<endl; else { cout<<a[t].id<<endl; auto x = a[t];//结构体可以直接复制 for(int i=t;i<=n-1;i++)//先把后面的所有结构体往前提一位,再在最后插入。 { a[i] = a[i+1]; } a[n] = x; } } return 0; }