问题描述

试题编号: 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) 不属于任何窗口。

解答

这道题非常简单,判断是否在窗口内,只需要满足X1<=x<=X2,Y1<=y<=Y2就可以了。至于满足点击后的窗口置顶这个条件,我的代码使用链表(list)作为装载窗口的数据结构,所以点击这个窗口后,先把这个窗口add到链表的最后,然后remove掉这个节点就可以啦

package test;

import java.util.ArrayList;

import java.util.Scanner;

public class Main2014032 {

public static void main(String[] args) {

// TODO Auto-generated method stub

Scanner in=new Scanner(System.in);

int N=in.nextInt();

int M=in.nextInt();

ArrayList list=new ArrayList();

for(int i=0;i

list.add(new window(in.nextInt(),in.nextInt(), in.nextInt(),in.nextInt(),i+1));

}

int x0=0,y0=0;

String out[]=new String [M];

int k;

for(int j=0;j

x0=in.nextInt();

y0=in.nextInt();

k=N-1;

for(;k>=0;k--){

if(list.get(k).check(x0, y0)!=0){

out[j]=list.get(k).check(x0, y0)+"";

//System.out.println(out[j]);

window temp=null;

list.add(list.get(k));

list.remove(k);

break;

}

}

if(k<0) out[j]="IGNORED";

}

for(int l=0;l

System.out.println(out[l]);

}

//System.out.println(new window(0, 0, 2, 2,1).check(1, 1));

}

static class window{

int x1,x2,y1,y2;

int order;

public window(int x1,int y1,int x2,int y2,int order){

this.x1=x1;this.y1=y1;

this.x2=x2;this.y2=y2;

this.order=order;

}

public int check(int x0,int y0){

if(x0>=x1 && x0<=x2 && y0>=y1 && y0<=y2){

return order;

}else{

return 0;

}

}

}

}

java ccf认证解答_CCF认证考试(java)---窗口相关推荐

  1. java ccf认证解答_CCF认证 java 中间数 遇到运行错误

    用java做中间数这道题,我在我的eclipse上运行了所有例子,结果都可以,但是在系统上测试了好几次,全是运行错误,并且是0分,请各位大神帮忙看看是哪里出了问题,谢谢!要求:问题描... 用java ...

  2. java类体_计算机二级考试Java类之类声明以及类体

    为了方便广大考生更好的复习,帮考网综合整理提供了2012年计算机二级考试java类之类声明以及类体 ,以供各位考生考试复习参考,希望对考生复习有所帮助./计算机三级 2012年计算机等级考试二级jav ...

  3. 2016 java二级试题_2016计算机二级考试Java试题及答案

    2016计算机二级考试Java试题及答案 (26)下面程序需要对Employee的对象进行存储,请在划线处填入正确答案. Class Employee implements________{ -} A ...

  4. java职业教育考试题_Java认证考试中Java构造方法题目解答

    [Java认证考试中Java构造方法题目解答]java中,在创建一个新的对象的时候,会调用其父亲的构造方法,测试程序如下: class parent{ int a=5; public parent() ...

  5. CCF csp软件能力认证 第15次 第5题 管道清洁 java 100分

    题目csp模拟考试系统201812-5的题目. 我的java张老师是负责csp的,于是java的一个作业就是做这一套题.用java写,行,c++转java而已,写算法题嘛,基本语法懂了就好了,就边学边 ...

  6. java 认证_Java认证:认证或不认证

    java 认证 专业认证始终是一个有争议的主题,有资格的人在争论收益与成本/时间的关系. 通过Oracle的Java认证,我认为有两个主要的受众可以从中受益: 那些开始从事软件事业的人. 扎实的工作经 ...

  7. oracle ocp认证_OCP Oracle认证专业Java SE 8程序员学习指南II-复习和作者对话

    oracle ocp认证 在招聘技术职位时,传统观点认为,没有什么能比有经验的候选人更胜一筹了,而且许多招聘经理通常可能不会在认证方面投入太多. 但是,Oracle Java认证考试当然是一个例外,因 ...

  8. Java认证:认证或不认证

    专业认证始终是一个有争议的主题,有资格的人在争论收益与成本/时间之间的关系. 通过Oracle的Java认证,我认为有两个主要的受众可以从中受益: 那些开始从事软件事业的人. 扎实的工作经验和可证明的 ...

  9. java实现https免证书认证

    java实现https免证书认证 解决方法: 1.下载两个包,httpclient-4.2.jar和httpcore-4.2.jar,复制以下代码就可使用. 2.调用类代码: String httpO ...

最新文章

  1. 0x55. 动态规划 - 环形与后效性处理(例题详解 × 6)
  2. Flask框架-基本使用
  3. Java8 - Future 接口
  4. 崽崽的发烧终于快结束了
  5. LDAP启动cacao提示Invalid file permission
  6. html获取此次点击的id,github项目解析(八)--Activity启动过程中获取组件宽高的三种方式...
  7. 计算机科学技术专业解析,专业解读—计算机科学与技术
  8. linux内核网络新特性,Linux内核4.4版本带来的网络新特性
  9. qtcpsocket断开_2020-05-06 QT子线程使用QTcpSocket连接服务器
  10. Debian Squeeze 安装
  11. 因果推断与反事实预测——盒马KDD2021的一篇论文(二十三)
  12. Flash Memory 简介
  13. 【最佳实践】瀚高数据库备份恢复操作
  14. Confluence 摘要(Excerpt)宏
  15. jupyter无法重命名,文件不可信,后台被自动关闭
  16. 根据结束时间和开始时间计算天数
  17. kalilinux链接蓝牙音响_怎么用手机蓝牙连接音响
  18. [读书]~偷得浮生半日闲
  19. Tair ldb(leveldb存储引擎)实现介绍
  20. ssm毕设项目计件工资管理系统15ik6(java+VUE+Mybatis+Maven+Mysql+sprnig)

热门文章

  1. 中正平和的机器人学笔记——5. 机械臂动力学
  2. Quant Macro:CTA与宏观经济指标的结合
  3. springboot vue黑板檫在线教育系统
  4. 信息系统项目管理师考点之错题知识汇总
  5. 【BZOJ1116】[POI2008]CLO【BFS】
  6. Windows和Ubuntu使用Synergy共用一套键鼠
  7. angular n'g-zorro走马灯划过时如何停止切换
  8. android打aar给unity使用
  9. 从可用性工程角度论述横幅广告
  10. SpringBoot自定义banner小彩蛋