题目背景
一个大小为 n×m 的城市遭到了 x 次轰炸,每次都炸了一个每条边都与边界平行的矩形。
题目描述
在轰炸后,有 y 个关键点,指挥官想知道,它们有没有受到过轰炸,如果有,被炸了几次,最后一次是第几轮。
输入格式
第一行共四个整数,分别为 n,m,x,y。
接下来 x 行,每行四个整数 2x1,y1,x2,y2,表示被轰炸的矩形的左上角坐标和右下角坐标(比如 1,3,7,101,3,7,10 就表示被轰炸的地方是从 (1,3)(1,3) 到 (7,10)(7,10) 的矩形)。
接下来 y 行,每行两个整数,表示这个关键点的坐标。
输出格式
输出共 y 行,每行第一个字符为 Y
或 N
,表示是否被轰炸;若为 Y
,在一个空格后为两个整数,表示被炸了几次和最后一次是第几轮。
输入输出样例
输入 #1复制
10 10 2 3 1 1 5 5 5 5 10 10 3 2 5 5 7 1
输出 #1复制
Y 1 1 Y 2 2 N
说明/提示
对于 100%100% 数据,满足 1≤n,m≤100。
思路:
简单暴力,记录最后轰炸值和轰炸轮
代码:
#include <bits/stdc++.h>
using namespace std;
int a[10001][10001];
int b[10001][10001];
int main()
{
int n,m,x,y;
cin>>n>>m>>x>>y;
for(int i=1;i<=x;i++){
int x1,x2,y1,y2;
cin>>x1>>y1>>x2>>y2;
for(int j=x1;j<=x2;j++){
for(int k=y1;k<=y2;k++){
a[j][k]++;
b[j][k]=i;}
}
}
for(int i=1;i<=y;i++){
int x,y;
cin>>x>>y;
if(a[x][y]!=0){cout<<"Y"<<" "<<a[x][y]<<" "<<b[x][y];}
else cout<<"N";
cout<<endl;
}
return 0;
}