铺地毯
铺地毯
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; }