CCF CSP 认证 201403-2 窗口 C语言

 题目需要记录每个窗口的编号和图层顺序,后按图层顺序从上到下进行检索,最后输出窗口编号

#include <stdio.h>
void click(int lev[],int N,int t) {     //图层置顶函数
	int i;
	for(i=N;i>0;i--) {
		lev[i]=lev[i-1];
	}
	lev[0]=t;
}
int main() {
	int N,M;
	scanf("%d %d",&N,&M);
	int i,j;
	int x[N][2],y[N][2],lev[N];
	for(i=0;i<N;i++) {
		scanf("%d %d %d %d",&x[i][0],&y[i][0],&x[i][1],&y[i][1]);
		lev[i]=N-1-i;    //lev[i]为窗口编号-1(第n号窗口存在,但lev[n]未定义)
		}
	for(j=0;j<M;j++) {
		int X,Y,t=0;
		scanf("%d %d",&X,&Y);
		for(i=0;i<N;i++) {
			if(X>=x[lev[i]][0]&&Y>=y[lev[i]][0]&&X<=x[lev[i]][1]&&Y<=y[lev[i]][1])  {
				t=lev[i]+1;
				click(lev,i,lev[i]);
				break;
			}
		}
		if(t) {
			printf("%d\n",t);
		}
		else printf("IGNORED\n");
	}
	return 0;
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值