1. 程式人生 > >洛谷P1847 轟炸

洛谷P1847 轟炸

題目背景

本題為轟炸資料加強版

題目描述

一個城市遭到了M次轟炸,每次都炸了一個每條邊都與邊界平行的矩形

在轟炸後,有N個關鍵點,指揮官想知道,它們有沒有受到過轟炸,如果有,被炸了幾次,最後一次是第幾輪。

輸入輸出格式

輸入格式: 第一行,兩個整數:M,N

以下M行,每行四個整數:x1、y1、x2、y2,表示被轟炸的矩形的左上角座標和右下角座標(比如1 3 7 10就表示被轟炸的地方是從(1,3)到(7,10)的矩形)。

再以下N行,每行兩個整數,表示這個關鍵點的座標。

輸出格式: 共N行,

每行第一個字元為YES或NO,表示是否被轟炸,若為YES,在一個空格後為兩個整數,表示被炸了幾次和最後一次是第幾輪。

輸入輸出樣例

輸入樣例#1: 1 1 1 1 10 10 11 11 輸出樣例#1: NO 說明

1<=N,M<=2000

1<=x1,y1,x2,y2<=maxlongint

#include<bits/stdc++.h>
using namespace std;
long long tot,ans,n,m;
int main()
{ 

    cin>>m>>n;
    long long a[n+1],b[n+1],x[n+1],y[n+1],i,j;
    for(int k=1;k<=m;k++)
        cin>>
a[k]>>b[k]>>x[k]>>y[k]; for(int o=1;o<=n;o++) {cin>>i>>j; for(int k=1;k<=m;k++) if(i>=a[k]&&i<=x[k]&&j>=b[k]&&j<=y[k]) {tot++; ans=k; } if(tot==0)cout<<"NO"<<endl; else
cout<<"YES"<<" "<<tot<<" "<<ans<<endl; tot=0; } }