洛谷 P1847 轰炸II

题目背景

本题为轰炸数据加强版

题目描述

一个城市遭到了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

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int main()
 4 { 
 5     long long tot,ans,n,m;
 6     cin>>m>>n;
 7     long long a[n+1],b[n+1],x[n+1],y[n+1],i,j;
 8     for(int k=1;k<=m;k++)
 9         cin>>a[k]>>b[k]>>x[k]>>y[k];
10     for(int o=1;o<=n;o++)
11     {cin>>i>>j;
12     for(int k=1;k<=m;k++)
13        if(i>=a[k]&&i<=x[k]&&j>=b[k]&&j<=y[k])
14        {
15            tot++;
16           ans=k;
17        } 
18     if(tot==0)cout<<"NO"<<endl;
19     else cout<<"YES"<<" "<<tot<<" "<<ans<<endl;
20     tot=0;
21     }
22 } 

猜你喜欢

转载自www.cnblogs.com/anbujingying/p/11323516.html