铺地毯
铺地毯
http://www.nowcoder.com/questionTerminal/a102724d530940cd80c54f3df6d41572
铺矩形地毯
既然前一张会被后一张所覆盖 那么不如直接按照反方向的顺序直接找到最后一张地毯
(一年前的代码,缩进比较尴尬)
#include <iostream>
using namespace std;
int a[100000][4];
int main(){
int n;
cin>>n;
for (int i=0;i<n;++i)
{
cin>>a[i][0];
cin>>a[i][1];
cin>>a[i][2];
cin>>a[i][3];
}
int x,y;
cin>>x;
cin>>y;
int c;
int flag=0;///标记数组 如果找不到被覆盖的,输出-1
for (int k=n-1;k>=0;--k)///从后往前枚举
{
if ((a[k][0]+a[k][2])>=x&&a[k][0]<=x&&a[k][1]<=y&&(a[k][1]+a[k][3])>=y)
{c=k+1;flag=1;break;}
}
if (flag==0)
cout<<-1<<endl;
else
cout<<c<<endl;
return 0;
}
查看20道真题和解析
