201403-2-窗口

一、题目

在这里插入图片描述

二、思路

按照题目要求模拟即可,即将数组的一个元素移动到尾

三、代码

#include <iostream>
using namespace std;

const int N = 20;
struct node {
    int x1, y1, x2, y2, id;
    node() {};
    node ( int _x1, int _y1, int _x2, int _y2, int _id ) : x1(_x1), y1(_y1), x2(_x2), y2(_y2), id(_id) {}
}Node[N];

int n, m;

int get( int x, int y ) {
    for ( int i = n; i >= 1; i-- ) {
        if ( x >= Node[i].x1 && x <= Node[i].x2 && y >= Node[i].y1 && y <= Node[i].y2 )
            return i;
    }
    return 0;
}

int main() {
    cin >> n >> m;
    for ( int i = 1; i <= n; i++ ) {
        int x1, y1, x2, y2;
        cin >> x1 >> y1 >> x2 >> y2;
        Node[i] = node( x1, y1, x2, y2, i );
    }
    while(m--) {
        int x, y;
        cin >> x >> y;
        int flag = get(x, y);
        if ( !flag ) cout << "IGNORED" << endl;
        else {
            cout << Node[flag].id << endl;
            node temp = Node[flag];
            for ( int i = flag; i < n; i++ ) //模拟窗口的移动
                Node[i] = Node[i + 1];
            Node[n] = temp;
        }
    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值