75分,不知道哪里出错,求解答
  • 板块P1830 轰炸III
  • 楼主agalia
  • 当前回复0
  • 已保存回复0
  • 发布时间2025/6/26 20:37
  • 上次更新2025/6/26 20:45:11
查看原帖
75分,不知道哪里出错,求解答
1783489
agalia楼主2025/6/26 20:37
#include<stdio.h>
int main(){
    int n,m,x,y;
    scanf("%d%d%d%d",&n,&m,&x,&y);
    int num[y]={0};
    int last_time[y]={0};
    int location[2];
    int area[x][4]={0};
    for(int i=1;i<=x;i++){
        for(int a=0;a<4;a++){
            scanf("%d",&area[i-1][a]);
        }

    for(int i=1;i<=y;i++){
        for(int a=0;a<2;a++){
            scanf("%d",&location[a]);
        }
        for(int j=1;j<=x;j++){
            if((area[j-1][0]<=location[0]&&area[j-1][2]>=location[0]&&area[j-1][1]<=location[1]&&area[j-1][3]>=location[1])){
                num[i-1]+=1;
                last_time[i-1]=i;
            }
        }
        if(num[i-1]==0){
            printf("N");
        }
        else{
            printf("Y %d %d",num[i-1],last_time[i-1]);
        }
        printf("\n");
    }
    return 0;
}

我的想法是用num和last_time两个数组储存关键点被炸次数和上一次被炸的轮次,用location储存关键点的xy坐标,area储存轰炸区域左下角和右上角点的横纵坐标,在循环中判断关键点的坐标是否在左下右上点的横纵坐标之间,即是否x1<x<x2,y1<y<y2,若是,则次数加一并保存轮次

2025/6/26 20:37
加载中...