简单题,因为只询问一个点,最后铺的地毯一定在最上面,用数组记录每张地毯的信息,然后倒着寻找符合条件的地毯输出即可

program carpet;
var
  x,y:longint;
  n,i,j,ans:integer;
  a:array[1..10000,1..4] of longint;
begin
  assign(input,'carpet.in');
  reset(input);
  assign(output,'carpet.out');
  rewrite(output);
  fillchar(a,sizeof(a),0);
  readln(n);
  for i:=1 to n do
  begin
    for j:=1 to 4 do
      read(a[i,j]);
    readln;
  end;
  readln(x,y);
  ans:=-1;
  for i:=n downto 1 do
    if (x>=a[i,1]) and (x<=a[i,1]+a[i,3]) and (y>=a[i,2]) and (y<=a[i,2]+a[i,4]) then
    begin
      ans:=i;
      break;
    end;
  writeln(ans);
  close(input);
  close(output);
end.