洛谷 P1003 铺地毯

铺地毯

var a1:array[0..10002,1..4] of longint;
a,b,g,k,i,x,y,n,ans:longint;
begin
  readln(n);
  for i:=1 to n do
  begin
    readln(a,b,g,k);
    a1[i,1]:=a;a1[i,2]:=b;a1[i,3]:=g+a;a1[i,4]:=k+b;
  end;
  readln(x,y);
  for i:=n downto 1 do
    if (a1[i,1]<=x) and (a1[i,3]>=x) and (a1[i,2]<=y) and (a1[i,4]>=y)
      then begin writeln(i);exit;end;
  writeln(-1);
end.

因为只需要找覆盖在一个点最上面的地毯,所以可以直接从最后一张地毯开始找。找到的第一块在该点之上地毯显然是最后放上去的在该点之上的地毯,也即覆盖在该点最上面的地毯。

原文地址:https://www.cnblogs.com/hehe54321/p/8470469.html