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

浙公网安备 33010602011771号