java ccf认证解答_CCF认证考试(java)---窗口
问题描述
试题编号: 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)---窗口相关推荐
- java ccf认证解答_CCF认证 java 中间数 遇到运行错误
用java做中间数这道题,我在我的eclipse上运行了所有例子,结果都可以,但是在系统上测试了好几次,全是运行错误,并且是0分,请各位大神帮忙看看是哪里出了问题,谢谢!要求:问题描... 用java ...
- java类体_计算机二级考试Java类之类声明以及类体
为了方便广大考生更好的复习,帮考网综合整理提供了2012年计算机二级考试java类之类声明以及类体 ,以供各位考生考试复习参考,希望对考生复习有所帮助./计算机三级 2012年计算机等级考试二级jav ...
- 2016 java二级试题_2016计算机二级考试Java试题及答案
2016计算机二级考试Java试题及答案 (26)下面程序需要对Employee的对象进行存储,请在划线处填入正确答案. Class Employee implements________{ -} A ...
- java职业教育考试题_Java认证考试中Java构造方法题目解答
[Java认证考试中Java构造方法题目解答]java中,在创建一个新的对象的时候,会调用其父亲的构造方法,测试程序如下: class parent{ int a=5; public parent() ...
- CCF csp软件能力认证 第15次 第5题 管道清洁 java 100分
题目csp模拟考试系统201812-5的题目. 我的java张老师是负责csp的,于是java的一个作业就是做这一套题.用java写,行,c++转java而已,写算法题嘛,基本语法懂了就好了,就边学边 ...
- java 认证_Java认证:认证或不认证
java 认证 专业认证始终是一个有争议的主题,有资格的人在争论收益与成本/时间的关系. 通过Oracle的Java认证,我认为有两个主要的受众可以从中受益: 那些开始从事软件事业的人. 扎实的工作经 ...
- oracle ocp认证_OCP Oracle认证专业Java SE 8程序员学习指南II-复习和作者对话
oracle ocp认证 在招聘技术职位时,传统观点认为,没有什么能比有经验的候选人更胜一筹了,而且许多招聘经理通常可能不会在认证方面投入太多. 但是,Oracle Java认证考试当然是一个例外,因 ...
- Java认证:认证或不认证
专业认证始终是一个有争议的主题,有资格的人在争论收益与成本/时间之间的关系. 通过Oracle的Java认证,我认为有两个主要的受众可以从中受益: 那些开始从事软件事业的人. 扎实的工作经验和可证明的 ...
- java实现https免证书认证
java实现https免证书认证 解决方法: 1.下载两个包,httpclient-4.2.jar和httpcore-4.2.jar,复制以下代码就可使用. 2.调用类代码: String httpO ...
最新文章
- 0x55. 动态规划 - 环形与后效性处理(例题详解 × 6)
- Flask框架-基本使用
- Java8 - Future 接口
- 崽崽的发烧终于快结束了
- LDAP启动cacao提示Invalid file permission
- html获取此次点击的id,github项目解析(八)--Activity启动过程中获取组件宽高的三种方式...
- 计算机科学技术专业解析,专业解读—计算机科学与技术
- linux内核网络新特性,Linux内核4.4版本带来的网络新特性
- qtcpsocket断开_2020-05-06 QT子线程使用QTcpSocket连接服务器
- Debian Squeeze 安装
- 因果推断与反事实预测——盒马KDD2021的一篇论文(二十三)
- Flash Memory 简介
- 【最佳实践】瀚高数据库备份恢复操作
- Confluence 摘要(Excerpt)宏
- jupyter无法重命名,文件不可信,后台被自动关闭
- 根据结束时间和开始时间计算天数
- kalilinux链接蓝牙音响_怎么用手机蓝牙连接音响
- [读书]~偷得浮生半日闲
- Tair ldb(leveldb存储引擎)实现介绍
- ssm毕设项目计件工资管理系统15ik6(java+VUE+Mybatis+Maven+Mysql+sprnig)