ZOJ 2480-Simplest Task in Windows
2016-03-10 10:46
363 查看
ZOJ Problem Set - 2480
Simplest Task in Windows
Time Limit: 2 Seconds
Memory Limit: 65536 KB
A typical windows platform may have several windows on the desktop. A user's operation may be as simple as a single click of the mouse. In the implementation of such a windows platform, one of the simplest tasks would be deciding which window had been clicked.
Given a serial of windows, for each mouse click, decide which window had been clicked. Please notice that windows may overlap, and the window on top would receive the click rather than others. And, we consider a window to be clicked even if the mouse is
just on its edge/corner. For the sake of simplicity, we assume that a window will not be activated to the top by any click.
Input
The first part of input is a serial of windows. First an integer N (1 <= N <= 10) is given, indicating the number of windows. Then N lines follow, each containing four integers, x1, y1, x2, y2, (x1 < x2, y1 < y2) the coordinates of the upper-left and lower-right
corners of a window. The windows are given in back-to-front order. N=0 signals the end of input.
The second part of input is a serial of mouse clicks. First an integer M (1 <= M <= 50) is given, indicating the number of mouse clicks. Then M lines follow, each containing two integers, x and y, the coordinates of a mouse click.
Output
For each mouse click in the input, output a single line containing the index (starting from 0) of the window which receives the click. If there is no such window, output "-1" in a line instead.
Sample Input
1
0 0 5 5
3
4 1
5 1
6 1
0
Sample Output
0
0
-1
Author: SHI, Xiaohan
Simplest Task in Windows
Time Limit: 2 Seconds
Memory Limit: 65536 KB
A typical windows platform may have several windows on the desktop. A user's operation may be as simple as a single click of the mouse. In the implementation of such a windows platform, one of the simplest tasks would be deciding which window had been clicked.
Given a serial of windows, for each mouse click, decide which window had been clicked. Please notice that windows may overlap, and the window on top would receive the click rather than others. And, we consider a window to be clicked even if the mouse is
just on its edge/corner. For the sake of simplicity, we assume that a window will not be activated to the top by any click.
Input
The first part of input is a serial of windows. First an integer N (1 <= N <= 10) is given, indicating the number of windows. Then N lines follow, each containing four integers, x1, y1, x2, y2, (x1 < x2, y1 < y2) the coordinates of the upper-left and lower-right
corners of a window. The windows are given in back-to-front order. N=0 signals the end of input.
The second part of input is a serial of mouse clicks. First an integer M (1 <= M <= 50) is given, indicating the number of mouse clicks. Then M lines follow, each containing two integers, x and y, the coordinates of a mouse click.
Output
For each mouse click in the input, output a single line containing the index (starting from 0) of the window which receives the click. If there is no such window, output "-1" in a line instead.
Sample Input
1
0 0 5 5
3
4 1
5 1
6 1
0
Sample Output
0
0
-1
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; struct node { int x1,y1,x2,y2; }num[10000]; int main() { int n; while(scanf("%d",&n)!=EOF) { if(n==0) break; int i,j; for(i=0;i<n;i++) { scanf("%d%d%d%d",&num[i].x1,&num[i].y1,&num[i].x2,&num[i].y2); } int m; scanf("%d",&m); while(m--){ int x,y,ans=-1; scanf("%d%d",&x,&y); for (i = n - 1; i >= 0; i--) if (x >= num[i].x1 && x <= num[i].x2 && y >= num[i].y1 && y <= num[i].y2) { ans = i; break; } printf("%d\n",ans); } } return 0; }
Author: SHI, Xiaohan
相关文章推荐
- 装饰者模式(3)
- 深入浅出Symfony2 - 结合MongoDB开发LBS应用
- How to slipstream SQL Server 2008 R2 and a SQL Server 2008 R2 Service Pack 1 (SP1)
- C语言类的封装
- HDOJ 5073 Galaxy 数学 贪心
- 版本控制之四:SVN客户端重新设置帐号和密码(转)
- Chapter 7、面向对象(四)--- 多态
- adb命令学习
- js 原型的内存分析
- [置顶] CentOS 7 RedHat5 安装 munin2 详解
- 开发板可以ping通百度IP,但是不能ping百度域名 提示ping: bad address 'www.baidu.com'
- c++上机报告1
- Leetcode:225. Implement Stack using Queues(JAVA)
- 篮桥杯 - 最大最小公倍数
- 高仿爱鲜蜂购物应用源码
- Android开发干货大全(持续更新)
- 我的第二个c++程序
- Android PNG渐变背景图片失真问题 getWindow().setFormat(PixelFormat.RGBA_8888);
- 六 、关于win10配置java环境 javac不能运行
- 版本控制之三:SVN合并及解决冲突(转)