试题编号: 201403-2
试题名称: 窗口
时间限制: 1.0s
内存限制: 256.0MB
问题描述:
问题描述
在某图形操作系统中,有 N 个窗口,每个窗口都是一个两边与坐标轴分别平行的矩形区域。窗口的边界上的点也属于该窗口。窗口之间有层次的区别,在多于一个窗口重叠的区域里,只会显示位于顶层的窗口里的内容。
  当你点击屏幕上一个点的时候,你就选择了处于被点击位置的最顶层窗口,并且这个窗口就会被移到所有窗口的最顶层,而剩余的窗口的层次顺序不变。如果你点击的位置不属于任何窗口,则系统会忽略你这次点击。
  现在我们希望你写一个程序模拟点击窗口的过程。
输入格式
输入的第一行有两个正整数,即 N 和 M。(1 ≤ N ≤ 10,1 ≤ M ≤ 10)
  接下来 N 行按照从最下层到最顶层的顺序给出 N 个窗口的位置。 每行包含四个非负整数 x1, y1, x2, y2,表示该窗口的一对顶点坐标分别为 (x1, y1) 和 (x2, y2)。保证 x1 < x2,y1 2。
  接下来 M 行每行包含两个非负整数 x, y,表示一次鼠标点击的坐标。
  题目中涉及到的所有点和矩形的顶点的 x, y 坐标分别不超过 2559 和  1439。
输出格式
输出包括 M 行,每一行表示一次鼠标点击的结果。如果该次鼠标点击选择了一个窗口,则输出这个窗口的编号(窗口按照输入中的顺序从 1 编号到 N);如果没有,则输出"IGNORED"(不含双引号)。
样例输入
3 4
0 0 4 4
1 1 5 5
2 2 6 6
1 1
0 0
4 4
0 5
样例输出
2
1
1
IGNORED
样例说明
第一次点击的位置同时属于第 1 和第 2 个窗口,但是由于第 2 个窗口在上面,它被选择并且被置于顶层。
  第二次点击的位置只属于第 1 个窗口,因此该次点击选择了此窗口并将其置于顶层。现在的三个窗口的层次关系与初始状态恰好相反了。
  第三次点击的位置同时属于三个窗口的范围,但是由于现在第 1 个窗口处于顶层,它被选择。
  最后点击的 (0, 5) 不属于任何窗口。

问题链接:CCF201403试题。

问题描述

n个重叠的窗口,鼠标m次点击屏幕的一个点,输出这些点击所点击到的窗口号。

问题分析

这是一个模拟题,模拟鼠标点击屏幕的过程。该问题比实际的多窗口系统要简单。关键在于数据表示,其他要点则是模拟鼠标操作过程的处理。

程序说明

数组win[]用来存储窗口。除了窗口坐标,附加上成员变量winno用来存储窗口号是一种规范的做法,就本问题而言可以不用该变量。

数组point[]用于存储鼠标点击的坐标。

数组order[]用于存储窗口的顺序。这是一种编程技巧,在由于鼠标点击导致窗口顺序改变的时候,就不需要移动窗口坐标等数据,只需要移动这个索引数据即可。

提交后得100分的C++语言程序如下:

/* CCF201403-2 窗口 */#include <iostream>using namespace std;const int N = 10;struct {int winno;int x1, y1, x2, y2;
} win[N];struct {int x, y;
} point[N];int order[N];int main()
{int n, m;// 输入数据cin >> n >> m;for(int i=0; i<n; i++) {win[i].winno = i + 1;cin >> win[i].x1 >> win[i].y1 >> win[i].x2 >> win[i].y2;}for(int i=0; i<m; i++)cin >> point[i].x >> point[i].y;// 初始化窗口显示顺序for(int i=0; i<n; i++)order[i] = n - i - 1;// 处理(模拟)鼠标点击int winno, temp;for(int i=0; i<m; i++) {winno = -1;     // 被点击的窗口号,-1表示未被点击// 判断哪个窗口被点击for(int j=0; j<n; j++) {if(win[order[j]].x1 <= point[i].x && point[i].x <= win[order[j]].x2 &&win[order[j]].y1 <= point[i].y && point[i].y <= win[order[j]].y2) {// 得到窗口号winno = win[order[j]].winno;// 将被点击的窗口移到最前端temp = order[j];for(int k=j; k>0; k--)order[k] = order[k-1];order[0] = temp;break;}}// 输出结果if(winno == -1)cout << "IGNORED" << endl;elsecout << winno << endl;}return 0;
}

CCF201403-2 窗口(100分)相关推荐

  1. 干货!我的计算机网络怎么考了 100 分的?

    作者 | 轩辕之风O 来源 | 编程技术宇宙(ID:xuanyuancoding) 有读者问我:轩辕,你是怎么学计算机网络的?鸽了好久,今天得空聊聊这个话题. 轩辕是通信工程专业,计算机网络通信自然是 ...

  2. CCF201403-1 相反数(100分)

    试题编号: 201403-1 试题名称: 相反数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 有 N 个非零且各不相同的整数.请你编一个程序求出它们中有多少对相反数(a 和 ...

  3. 福师2018计算机应用基础,中石油华东《计算机应用基础》2018年秋学期在线作业100分答案满分...

    <计算机应用基础>2018年秋学期在线作业(一) 共题,总分:100分 时间:30分0秒 答题中 分一.单选题共20题,100分 15分 在Windows中,"写字板" ...

  4. CCF201403-1 相反数(解法三)(100分)(废除!!!)

    试题编号: 201403-1 试题名称: 相反数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 有 N 个非零且各不相同的整数.请你编一个程序求出它们中有多少对相反数(a 和 ...

  5. CCF201403-1 相反数(解法二)(100分)(废除!!!)

    试题编号: 201403-1 试题名称: 相反数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 有 N 个非零且各不相同的整数.请你编一个程序求出它们中有多少对相反数(a 和 ...

  6. CCF201403-3 命令行选项(100分)

    试题编号: 201403-3 试题名称: 命令行选项 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 请你写一个命令行分析程序,用以分析给定的命令行里包含哪些选项.每个命令行由 ...

  7. CCF201403-4 无线网络(100分)

    试题编号: 201403-4 试题名称: 无线网络 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 目前在一个很大的平面房间里有 n 个无线路由器,每个无线路由器都固定在某个点 ...

  8. CCF-CSP认证历年真题解(100分)

    转载: 链接出自:https://blog.csdn.net/tigerisland45/article/details/54755895 CCF-CSP认证历年真题解–python语言 CCF-CS ...

  9. 东师计算机应用基础18秋在线作业3,东师计算机应用基础18秋在线作业100分答案...

    计算机应用基础18秋在线作业1 共题,总分:100分 时间:59分59秒 答题中 分 一.单选题共25题,62.5分 1 2.5分 22. 目前计算机的应用领域可大致分为三个方面,即 A计算机辅助教学 ...

最新文章

  1. linux系统预定义变量有哪些,Shell预定义变量用法详解
  2. 实战tcpdump看RST
  3. 论文盘点:GAN生成对抗样本的方法解析
  4. 进入Linux救援(rescue)模式的四大法门
  5. php yii2 获取表里最大的id_Yii2中自带分页类实现分页
  6. ffmpeg libx264_nginx+ffmpeg搭建流媒体服务器(直播流)
  7. 给大家展示一下最近在Yeslab安全实验室测试的设备!
  8. vant部署_详解VUE项目中安装和使用vant组件
  9. layui图片上传按钮按着没反应_关于layui动态生成文件上传按钮后点击无效的解决办法...
  10. UI设计灵感|如何简易花繁多的数据?功能仪表盘界面设计来看
  11. python判断丑数_LeetCode-python 264.丑数 II
  12. VS2017+AE10.2实现二次开发
  13. Android 输出word文件中插入图片
  14. 双系统中Ubuntu启动失败
  15. 数据结构-图的应用-最小生成树(类C语言版)
  16. python日常实用小脚本-Python实现自动挂机脚本 | 沐雨浥尘
  17. Linux实操篇笔记
  18. PHP写的人人网好友爬虫
  19. 【python】【matplotlib】plt.scatter颜色大全
  20. Microsoft Office Word 遇到问题需要关闭。我们对此引起的不便表示抱歉解决办法!

热门文章

  1. ArcGIS Desktop软件安装和试用说明
  2. 深入浅出Docker(四):Docker的集成测试部署之道
  3. SNS类游戏cache server设计浅析
  4. 计算机键盘prtscr,键盘上的SCR是什么意思(电脑截图的快捷方式都有哪些)
  5. easyui确认取消弹窗_Jquery EasyUI中弹出确认对话框
  6. dubbo连接线上服务,没有配置好引发的错误
  7. get请求是否 csrf认证流程_CORS和CSRF修炼宝典
  8. 剑指offer面试题58 - I. 翻转单词顺序(双指针)
  9. OpenCV精进之路(一):图像处理知识点串烧
  10. 自定义模块_Nginx自定义模块开发