从最后开始搜索,我的方法是简单的一行行搜索,按行来搜,在判断的时候就是只要满足条件,就跳出循环,输出第i行的值(从1到n),我输出的是第i+1行的(从0到n-1),对应的i就是颜色,代码如下:
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>
int main()
{
int T,i,j,x,y;
int flag;
int a[10002][4];
scanf ("%d",&T);
for (i=0;i<T;i++)
for (j=0;j<4;j++)
scanf ("%d",&a[i][j]); //输入数据;
scanf ("%d%d",&x,&y);
flag=0;
for (i=T-1;i>=0;i--)
{
//printf ("%d %d %d %d\n",a[i][0],a[i][1],a[i][2],a[i][3]);
if ((a[i][0]<=x && x<=a[i][0]+a[i][2]) && (a[i][1]<=y && y<=a[i][1]+a[i][3]))
{
flag++;
break;
}
}
if (flag==0) // 不在区域
printf("-1\n");
if (flag!=0)
printf ("%d\n",i+1);
return 0;
}