窗口

 
 

Description

在某图形操作系统中,有N 个窗口,每个窗口都是一个两边与坐标轴分别平行的矩形区域。窗口的边界上的点也属于该窗口。窗口之间有层次的区别,在多于一个窗口重叠的区域里,只会显示位于顶层的窗口里的内容。

当你点击屏幕上一个点的时候,你就选择了处于被点击位置的最顶层窗口,并且这个窗口就会被移到所有窗口的最顶层,而剩余的窗口的层次顺序不变。如果你点击的位置不属于任何窗口,则系统会忽略你这次点击。
现在我们希望你写一个程序模拟点击窗口的过程。

Input

输入的第一行有两个正整数,即N 和M。(1 <= N <= 10,1 <= M <= 10)
接下来N 行按照从最下层到最顶层的顺序给出N 个窗口的位置。每行包含四个非负整数x1, y1, x2, y2,表示该窗口的一对顶点坐标分别为(x1,y1) 和(x2, y2)。保证x1 < x2,y1 < y2。

接下来M 行每行包含两个非负整数x; y,表示一次鼠标点击的坐标。
题目中涉及到的所有点和矩形的顶点的x; y 坐标分别不超过2559 和1439。

Output

输出包括M 行,每一行表示一次鼠标点击的结果。如果该次鼠标点击选择了一个窗口,则输出这个窗口的编号(窗口按照输入中的顺序从1 编号到N);如果没有,则输出"IGNORED"(不含双引号)。

Sample Input

3 4
0 0 4 4
1 1 5 5
2 2 6 6
1 1
0 0
4 4
0 5

Sample Output

2
1
1
IGNORED

Hint

第一次点击的位置同时属于第1 和第2 个窗口,但是由于第2 个窗口在上面,它被选择并且被置于顶层。

第二次点击的位置只属于第1 个窗口,因此该次点击选择了此窗口并将其置于顶层。现在的三个窗口的层次关系与初始状态恰好相反了。
第三次点击的位置同时属于三个窗口的范围,但是由于现在第1 个窗口处于顶层,它被选择。
最后点击的(0; 5) 不属于任何窗口。
 
 
#include<iostream>
#include<algorithm>
using namespace std; struct window{
int x1,y1;
int x2,y2;
int id;
}; void swap(window &a,window &b)
{
window t;
t.x1=a.x1;t.y1=a.y1;t.x2=a.x2;t.y2=a.y2;t.id=a.id;
a.x1=b.x1;a.y1=b.y1;a.x2=b.x2;a.y2=b.y2;a.id=b.id;
b.x1=t.x1;b.y1=t.y1;b.x2=t.x2;b.y2=t.y2;b.id=t.id;
} window w[12]; void Adjust(window w[],int n,int x)
{
for(int i=x;i<n;i++)
swap(w[i],w[i+1]);
} int main()
{
int n,m,ans;
while(cin>>n>>m)
{
ans=0;
for(int i=1;i<=n;i++)
{
cin>>w[i].x1>>w[i].y1>>w[i].x2>>w[i].y2;
w[i].id=i;
}
for(int i=0;i<m;i++)
{
int a,b,j;
cin>>a>>b;
for(j=n;j>0;j--)
{
if(a>=w[j].x1 && a<=w[j].x2 && b>=w[j].y1 && b<=w[j].y2)
{
Adjust(w,n,j);
break;
}
}
if(j==0)
cout<<"IGNORED"<<endl;
else
cout<<w[n].id<<endl;
}
}
return 0;
}

  

合工大 OJ 1322 窗口的更多相关文章

  1. 合工大OJ 1337 一加二减三

    Description 题目描述:给一个串,形如一+二-三,求值 Input 第一行为一个正整数T,表示数据的组数,接下来有T行每行都是一个形如一+二-三的串,一,二,三均为正整数 Output 对于 ...

  2. 合工大OJ 1331 回文数

    Description 一个正整数,如果从左向右读(称之为正序数)和从右向左读(称之为倒序数)是一样的,这样的数就叫回文数. 任取一个正整数,如果不是回文数,将该数与他的倒序数相加,若其和不是回文数, ...

  3. 合工大OJ 1330 种树

    Description 某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米.我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置:数轴上的每个整数点,即0,1,2, ...

  4. 合工大 OJ 1332 蛇形阵

    Description 蛇形针回字阵: 如3*3: 回字阵: 7 6 5 8 1 4 9 2 3 Input 多组数据: 每一行一个正整数n(n为奇数,<26),代表n*n矩阵. Output ...

  5. 安徽省2016“京胜杯”程序设计大赛_F_吃在工大

    吃在工大 Time Limit: 1000 MS Memory Limit: 65536 KB Total Submissions: 51 Accepted: 15 Description      ...

  6. 我的CS考研路

    说在前面 从去年7月15号正式准备考研以来,直到今天,3月19号,一共经历8个多月,考研初步告捷,在此想跟大家分享一下自己的经验,希望能对接下来考研的学弟学妹们有所帮助. 首先介绍下我自己的情况,本科 ...

  7. NX二次开发-重命名装配组件

    在GC工具里面是有一个重命名装配组件的命令的,除了这个外,好像没看到NX里还有其他可以重命名装配组件的命令,本来以为在UFUN ASSEM装配的头文件里会有更改装配部件名字的函数,但是没有找到,可能没 ...

  8. NOIp2010 关押罪犯

    二分+2-SAT 先预处理出所有的v,然后离散化一下,在那个的基础上二分,对于每次二分出的值约束边权超过所二分出的边权的两点. //OJ 1322 //by Cydiater //2015.8.26 ...

  9. poj 算法 分类

    转载请注明出处:優YoU http://blog.csdn.net/lyy289065406/article/details/6642573 最近AC题:2528   更新时间:2011.09.22  ...

随机推荐

  1. mongodb学习2---常用命令解析

    1,mongodb insert()和save()的相同点和区别区别:若新增的数据中存在主键 ,insert() 会提示错误,而save() 则更改原来的内容为新内容.insert({_id : 1, ...

  2. 【Android】Android SDK Manager更新慢/失败的问题

    前言:更新下载Intel x86 Atom_64 System Image的时候总是失败,速度只有几KB,我这是10M的网啊. 最后找到一篇日志,解决了这个问题.非常感谢!其参考地址:http://w ...

  3. [mysql] timestamp自动更新和初始化

    1.概述 在我们设计表的时候,考虑将行数据的创建时间和最后更新时间记录下来是很好的实践.尤其是可能需要做数据同步或者对数据新鲜度有要求的表.举些应用场景,更新距上次更新超过2小时的行数据,或者是将一个 ...

  4. angularJS中的$apply(),$digest(),$watch()

    $apply()和$digest()在AngularJS中是两个核心概念,但是有时候它们又让人困惑.而为了了解AngularJS的工作方式,首先需要了解$apply()和$digest()是如何工作的 ...

  5. SET UPDATE TASK LOCAL

    SET Effect Switches on the local update task. This means that when you specify CALL FUNCTION ... IN ...

  6. 解决Sharepoint每天第一次打开速度慢的问题

    每天第一次打开Sharepoint的网站会非常慢,下面是解决这个问题的几个方法. 添加crl.microsoft.com到Hosts文件,IP地址指向服务器本机. 允许服务器直接连接到crl.micr ...

  7. SPJS Upload for SharePoint: Custom upload page for uploading documents to various document libraries in a site collection

    http://spjsblog.com/2013/12/08/spjs-upload-for-sharepoint-custom-upload-page-for-uploading-documents ...

  8. Arcengine实现创建网络数据集札记(二)

    四 ArcEngine实现创建网络数据集 ArcEngine创建网络数据集的过程,与ArcMap设置的过程类似,主要通过六个步骤即可以实现. 1 定义网络数据集对象,并设置基本属性,包括网络数据集名称 ...

  9. Arcengine实现创建网络数据集札记(一)

    一 引子 网络数据集,GIS空间分析基础的理论和知识,是最短路径分析.连通性分析等其他空间分析技术的数据基础. 以往,网络数据集的研究很少,此次项目开发过程中,对网络数据集以及arcengine创建网 ...

  10. IOS中程序如何进行推送消息(本地推送,远程推送)2(上)

    未看过本地推送的,可以提前看一下本地推送. http://www.cnblogs.com/wolfhous/p/5135711.html =============================== ...