当前位置: 代码迷 >> 综合 >> P1003 铺地毯(C语言)
  详细解决方案

P1003 铺地毯(C语言)

热度:83   发布时间:2024-02-05 11:18:13.0

P1003 铺地毯

在这里插入图片描述
在这里插入图片描述

1.思路

刚看到这个题目的时候,真的很迷惑,不知道怎么用代码表示,也是在看了别人的代码,才理解这道题目的,然后就写下了这个思路。
1.首先先要逆序判定,因为题目要求输出值比较大的地毯
2.然后根据输入的数据判断数,是否在这个范围内
3.如果找到了就输出并退出循环。

2.源码

#include <stdio.h>
int main()
{int i,n,x[10005],y[10005],a[10005],b[10005],x1,y1,k=1;scanf("%d",&n);for(i=0;i<n;i++)scanf("%d%d%d%d",&x[i],&y[i],&a[i],&b[i]);scanf("%d%d",&x1,&y1);for(i=n-1;i>=0;i--)    //逆序输出{if((x1>=x[i]&&x1<=x[i]+a[i])&&(y1>=y[i]&&y1<=y[i]+b[i])){    printf("%d\n",i+1); k*=0;}else continue;if((x1>=x[i]&&x1<=x[i]+a[i])&&(y1>=y[i]&&y1<=y[i]+b[i]))break;     //输出最大的跳出循环}if(k==1) printf("-1\n");return 0;
}