洛谷-P1003 铺地毯
程序员文章站
2022-05-09 13:54:01
...
鉴于本题存在数据量较大的样例,无法使用地图染色法通过该样例(地图染色法只可以通过50%的样例)。
在元素量过大的数组无法创建的情况下,使用了反向循环加IF判断的方法,简单地解决了该题。
Solution:
#include <stdio.h>
int main()
{
int n,x,y;
int a[10000],b[10000],g[10000],k[10000];
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d%d%d%d",&a[i],&b[i],&g[i],&k[i]);
}
scanf("%d%d",&x,&y);
int x_right,y_high;
int number = -1;
for(int i=n-1;i>=0;i--){
x_right = a[i]+g[i];
y_high = b[i]+k[i];
if(x>=a[i]&&x<=x_right&&y>=b[i]&&y<=y_high){
number = i+1;
break;
}
}
printf("%d",number);
return 0;
}