一个城市遭到了 MM 次轰炸,每次都炸了一个每条边都与边界平行的矩形
在轰炸后,有 NN 个关键点,指挥官想知道,它们有没有受到过轰炸。如果有,被炸了几次,最后一次是第几轮。
输入
第一行,两个整数:M,NM,N。 M,N \le 2000M,N≤2000
接下来 MM 行,每行四个整数:x_1x1、y_1y1、x_2x2、y_2y2,表示被轰炸的矩形的左上角坐标和右下角坐标(比如1 3 7 10
就表示被轰炸的地方是从 (1,3)(1,3) 到 (7,10)(7,10) 的矩形)。
再接下来 NN 行,每行两个整数,表示每个关键点的坐标。
输出
共 NN 行,每行第一个字符串为YES
或NO
,表示是否被轰炸,若为YES
,在一个空格后为两个整数,表示被炸了几次和最后一次是第几轮。
样例
输入
复制
1 2 1 3 7 10 6 2 6 6
输出
复制
NO YES 1 1
#include<bits/stdc++.h>
using namespace std;
int m,n,xa[10000],ya[10000],ans[10000],
xb[10000],yb[10000],da[10000];
int main(){
cin>>m>>n;
for(int i=1;i<=m;i++){
cin>>xa[i]>>ya[i]>>xb[i]>>yb[i];
}
for(int i=1;i<=n;i++){
int ax,ay;
cin>>ax>>ay;
for(int j=1;j<=m;j++)
{
if(ax>=xa[j]&&ax<=xb[j]&&ay>=ya[j]&&ay<=yb[j]){
ans[i]++; da[i]=j;
}
}
} for(int i=1;i<=n;i++){
if(ans[i]==0)
cout<<"NO"<<endl;
else{
cout<<"YES"<<" "<<ans[i]<<" "<<da[i]<<endl;
}
}
return 0;
}