Java教程

窗口 (第二题)

本文主要是介绍窗口 (第二题),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 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;
}

这篇关于窗口 (第二题)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!