oj1185:カーペット

タイトルが必要な
特別な表彰式を調製するために、会場の矩形領域内の主催者は、長方形のカーペットの一部で覆われた(直交座標系の第一象限と見ることができます)。1からnまでの番号Nカーペットの合計。今連続軸に平行に敷設され、これらの数字カーペット昇順に従って、カーペットを敷設した後、以前に敷設カーペットの上に重ね。カーペットの敷設が完了した後、主催者はポイント数の最上階を覆うカーペットを知りたいです。注:矩形の境界上の点、及びカーペットの4つの頂点がカーペットで覆われて考えることができます。

入力
入力コモン行N + 2。
最初の行、整数n、nは総カーペットを表します。
次の行n iは、それぞれ、カーペットスペースで区切られた2つの整数それぞれ、間に4つの正の整数であり、B、G、Kを含む、カーペット情報を表し、I + 1行数左下隅とカーペットXおよびY軸方向の長さの座標(A、B)。
N + 2番目のラインは、2つの正の整数xとyが含まれ、接地点に必要な表現(x、y)を座標。
出力
カーペットの数を表す出力コモンライン1、整数、必須;カーペットを出力ここで覆われていない場合は-1。
入力サンプル

。3
。1 3 0 2
0 2 3 3
2 3 1 3
2 2
。3
。1 3 0 2
0 2 3 3
2. 3. 3. 1
。4. 5
サンプル出力

。3
-1
ヒント
データの100%まで、そこ0≦ ≤10,000,0≤a、B、G、k≤100,000。
点の位置と全範囲の左下隅の領域に対して、最大値を見つけるためのボトムアップからの。

#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
#include<queue>
#include<math.h>
#include<cstdio>
#include<vector>
#include<cstdlib>
#include<cstring>
using namespace std;
int main()
{
    int m,n;
    int x1[100100],x2[100100],y3[100100],y2[100100],x,y;
    cin>>m;
    for(int i=1;i<=m;i++)
        cin>>x1[i]>>y3[i]>>x2[i]>>y2[i];
    cin>>x>>y; 
    n=-1;
   for(int i=1;i<=m;i++)
   {
       if(x>=x1[i]&&x<=x1[i]+x2[i]&&y>=y3[i]&&y<=y3[i]+y2[i])
       n=i;
   }
    cout<<n<<endl;
    return 0;
}
公開された38元の記事 ウォン称賛27 ビュー3164

おすすめ

転載: blog.csdn.net/qq_45891413/article/details/105334573