【普及路を再開】【シミュレーション】カーペットを敷く


タイトルの説明
ユニークな授賞式を準備するために、組織者は会場の長方形の領域(平面直角座標系の第1象限と見なすことができる)に矩形の絨毯を敷いた.全部でn枚の絨毯があり、番号は1からnである.現在、これらの絨毯は番号が小さい順に座標軸に平行に敷設され、後敷きの絨毯は前に敷かれた絨毯の上に覆われている.
カーペットの敷設が完了すると、組織者は地面のある点を覆う一番上のカーペットの番号を知りたいと思っています.注意:長方形のカーペット境界と4つの頂点の点もカーペットで覆われています.
にゅうしゅつりょくけいしき
入力形式:
入力ファイル名carpet.in .合計n+2行を入力します.1行目は、整数nで、合計n枚のカーペットがあることを示します.次のn行のうち、i+1行目はi番のカーペットの情報を表し、4つの正の整数a,b,g,kを含み、2つの整数の間に1つのスペースで区切られている.敷設カーペットの左下隅の座標(a,b)およびカーペットのx軸およびy軸方向の長さをそれぞれ表す.n+2行目は、求めた地面の点を表す座標(x,y)の2つの正の整数xおよびyを含む.
出力フォーマット:
出力ファイル名はcarpet.out .出力は1行で、整数で、求めたカーペットの番号を表します.ここでカーペットで覆われていない場合は-1を出力します.
入出力サンプル
サンプル#1を入力:
【    1】
3
1 0 2 3
0 2 3 3
2 1 3 3
2 2
【    2】
3
1 0 2 3
0 2 3 3
2 1 3 3
4 5

出力サンプル#1:
【    1】
3
【    2】
-1

説明
【様式解釈1】
下図のように、1番カーペットは実線で、2番カーペットは破線で、3番カーペットは2実線で、カバーポイント(2,2)の一番上のカーペットは3番カーペットです.
【データ範囲】
30%のデータに対して、n≦2がある. 
50%のデータに対して、0≦a、b、g、k≦100; 
100%のデータに対して,0≦n≦10000,0≦a,b,g,k≦100000であった. 
Noip 2011向上グループday 1第1題
First:100000*100000の配列(無知な私を許して)、掛け~~~
Second:賢くなった点を学んで、どうせ重なる順序はその入力順序と関係があるだけで、x,yがa[i]~a[i]+g-1,b[i]~b[i]+k-1の範囲にあるかどうかを判定するたびに良い...
——2015.12.26
var n,i,x,y,ans:longint;
    a,b,g,k:array[0..200001] of longint;
begin
    readln(n);
    for i:=1 to n do begin
        readln(a[i],b[i],g[i],k[i]);
        {for j:=a to a+g-1 do begin
            for l:=b to b+k-1 do begin
                c[j,l]:=i;
            end;
        end;}
    end;
    readln(x,y);
    for i:=1 to n do begin
        if (a[i]+g[i]-1>=x)and(a[i]<=x)and(b[i]+k[i]-1>=y)and(b[i]<=y)
        then ans:=i;
    end;
    if ans=0 then writeln(-1)
    else writeln(ans);
end.