题目背景
一个大小为 �×�n×m 的城市遭到了 �x 次轰炸,每次都炸了一个每条边都与边界平行的矩形。
题目描述
在轰炸后,有 �y 个关键点,指挥官想知道,它们有没有受到过轰炸,如果有,被炸了几次,最后一次是第几轮。
输入格式
第一行共四个整数,分别为 �,�,�,�n,m,x,y。
接下来 �x 行,每行四个整数 �1,�1,�2,�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≤�,�≤1001≤n,m≤100。
如果这个点的坐标在范围之内,那么将总数加上一,最后一次轰炸变成这一次:
- if(o>=c[j]&&o<=e[j]&&p>=d[j]&&p<=f[j]){
- sum+=1;
- last=j;
- }
循环遍历每一个轰炸范围:
- for(int j=1;j<=x;j++){
- if(o>=c[j]&&o<=e[j]&&p>=d[j]&&p<=f[j]){
- sum+=1;
- last=j;
- }//如果这个点的坐标在范围之内,那么将总数加上一,最后一次轰炸变成这一次
- }
前提是总数要大于等于0才能输出有被轰炸:
- if(sum>0){
- cout<<"Y"<<" "<
" "< - }
循环遍历每一个点坐标:
- for(int i=1;i<=y;i++){
- int o,p,sum=0,last=0;
- cin>>o>>p;
- for(int j=1;j<=x;j++){
- if(o>=c[j]&&o<=e[j]&&p>=d[j]&&p<=f[j]){
- sum+=1;
- last=j;
- }//如果这个点的坐标在范围之内,那么将总数加上一,最后一次轰炸变成这一次
- }//循环遍历每一个轰炸范围
- if(sum>0){
- cout<<"Y"<<" "<
" "< - }//前提是总数要大于等于0才能输出有被轰炸
- else{
- cout<<"N"<
- }
- }
源代码
- #include
- using namespace std;
-
- int main(){
- int n,m,x,y,a[101],b[101],c[101],d[101],e[101],f[101];
- cin>>n>>m>>x>>y;
- for(int i=1;i<=x;i++){
- cin>>c[i]>>d[i]>>e[i]>>f[i];
- }for(int i=1;i<=y;i++){
- int o,p,sum=0,last=0;
- cin>>o>>p;
- for(int j=1;j<=x;j++){
- if(o>=c[j]&&o<=e[j]&&p>=d[j]&&p<=f[j]){
- sum+=1;
- last=j;
- }//如果这个点的坐标在范围之内,那么将总数加上一,最后一次轰炸变成这一次
- }//循环遍历每一个轰炸范围
- if(sum>0){
- cout<<"Y"<<" "<
" "< - }//前提是总数要大于等于0才能输出有被轰炸
- else{
- cout<<"N"<
- }
- }//循环遍历每一个点坐标
- return 0;
- }
-
相关阅读:
流程管理与商务智能解决方案(62页PPT)
css图片滚动
PTA编程的一些总结
电容笔好还是触屏笔好?便宜又好用的电容笔推荐
leetcode二叉树相关模板
C#归并排序算法
物理服务器和云服务器的区别
使用swc 替换ts-loader 加速构建webpack-vue-tsx项目
第42期:MySQL 是否有必要多列分区
uboot移植之DDR初始化参数更改
-
原文地址:https://blog.csdn.net/pd___gwx0804/article/details/133420184