RE求助

P1141 01迷宫

Patrick_Liu_Bingxian @ 2023-12-03 20:04:49

#include<iostream>
using namespace std;
struct node{
    int num,b;
}a[1001][1001];
int main(){
    int n,m,ic,jc,sum=0;
    cin>>n>>m;
    for(int i=0;i<=1000;i++)
        for(int j=0;j<=1000;j++){
            a[i][j].b=0;
            a[i][j].num=2;
        }
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++){
            cin>>a[i][j].num;
            a[i][j].b=0;
        }
    for(int i=1;i<=m;i++){
        cin>>ic>>jc;
        a[ic][jc].b=1;
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                if(a[i][j].b==1){
                    if(a[i+1][j].num!=2&&a[i+1][j].num!=a[i][j].num){
                        a[i+1][j].b=1;
                    }
                    if(a[i-1][j].num!=2&&a[i-1][j].num!=a[i][j].num&&a[i-1][j].num!=-1){
                        a[i-1][j].b=1;
                        i=i-2;
                        break;
                    }
                    if(a[i][j+1].num!=2&&a[i][j+1].num!=a[i][j].num){
                        a[i][j+1].b=1;
                    }
                    if(a[i][j-1].num!=2&&a[i][j-1].num!=a[i][j].num&&a[i-1][j].num!=-1){
                        a[i][j-1].b=1;
                        j=j-2;
                    }
                    a[i][j].b=-1;
                }
            }
        }
        for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++){
                if(a[i][j].b==-1)
                  sum++;
            }
        cout<<sum<<'\n';
        sum=0;
        a[ic][jc].b=0;
    }       
    return 0;
}
RE求助!!!赏关

|