窗口

 
 

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. mysql启动报错:Starting MySQL...The server quit without updating PID file

    在mysql的data目录下误删除了mysql-bin.000001,mysql-bin.000002等文件,但是没有删除mysql-bin.index文件,此时启动mysql就会报错: Starti ...

  2. [python学习笔记]Day3

    函数 如: def is_leapyear(year): if (year%4 == 0 and year%100 != 0) or (year%400 == 0): return True else ...

  3. redis3.0 集群实战1 -- 安装和配置

    本文主要是在centos7上安装和配置redis集群实战 参考: http://hot66hot.iteye.com/blog/2050676 集群教程: http://redisdoc.com/to ...

  4. Gulp-前端进阶A-3---如何不刷新监控文件变化?

    npm install --save-dev gulp-connect npm install --save-dev gulp-livereload npm其他,前面已有 var gulp = req ...

  5. 从web移动端布局到react native布局

    在web移动端通常会有这样的需求,实现上中下三栏布局(上下导航栏位置固定,中间部分内容超出可滚动),如下图所示: 实现方法如下: HTML结构: <div class='container'&g ...

  6. 浅谈React受控与非受控组件

    背景 React内部分别使用了props, state来区分组件的属性和状态.props用来定义组件外部传进来的属性, 属于那种经过外部定义之后, 组件内部就无法改变.而state维持组件内部的状态更 ...

  7. Android Studio 第一次新建Android Gradle项目超级慢的解决方案

    大家有什么问题,欢迎问我! 注:Android Studio在第一次新建一个Gradle项目时需要下载Gradle,所以启动很慢(Gradle-bin大约三十几兆),所以我们应该事先帮他下载好. 首先 ...

  8. ReactiveCocoa之UI篇

    前言: 上一篇讲ReactiveCocoa是函数响应式编程,并将多种事件响应的方式统一起来,使得不同的事件响应方式高度统一.同时也讲了ReactiveCocoa框架里面常见的几个概念.接下来基于那几个 ...

  9. iOS开发笔记10:圆点缩放动画、强制更新、远程推送加语音提醒及UIView截屏

    1.使用CAReplicatorLayer制作等待动画 CALayer+CABasicAnimation可以制作很多简单的动画效果,之前的博客中介绍的“两个动画”,一个是利用一张渐变色图片+CABas ...

  10. IOS设计模式-抽象工厂

    抽象工厂的灵活性要比简单工程的灵活性强. 抽象工厂的UML图(第一次画UML图,可能关系和箭头的图意义有错误,但是请不要以建模规范去看图,以最基本的结合后面OC代码,理解相关关系): 抽象工厂原理:抽 ...