一二三四五 上山打老虎

CCF-CSP-2014-03-2窗口

链接:http://118.190.20.162/view.page?gpid=T9

思路:
增加一个数组来记录当前的窗口从上到下依次是多少,如果有点击,则把点击的窗口移动到最上边(通过相邻的swap来移动达到维护目的)
代码:

#include<bits/stdc++.h>

using namespace std;
struct node{
    int xa,xb,ya,yb;
}a[1000];
int b[100];
int main (){
    int n,m;
    cin>>n>>m;
    for(int i=1;i<=n;i++){
    b[i]=n-i+1;
        cin>>a[i].xa>>a[i].ya>>a[i].xb>>a[i].yb;
    }
    int l,r;
    for(int i=1;i<=m;i++){
//        for(int k=1;k<=n;k++)
//        cout<<b[k]<<" ";
//    cout<<endl;
        cin>>l>>r;
        int j;
        for(j=1;j<=n;j++){
            node tmp=a[b[j]];
            if(l>=tmp.xa&&r>=tmp.ya&&l<=tmp.xb&&r<=tmp.yb){
                for(int k=j-1;k>=1;k--){
                    swap(b[k],b[k+1]);
                }
                break;
            }
        }
        j<=n ? cout<<b[1]<<endl : cout<<"IGNORED"<<endl;
    }
    return 0;
}


posted @ 2021-03-27 20:00  黒川川  阅读(63)  评论(0)    收藏  举报