20分...错哪了/怎么改?
查看原帖
20分...错哪了/怎么改?
692360
wheatx楼主2025/7/31 15:01
#include<iostream>
using namespace std;
int main(){
    int n,m,b[2][26],k,s[2][6],a[101][101]={0},x,y;
    cin>>n>>m>>k;
    for(int q=0;q<m;q++){
        cin>>b[0][q]>>b[1][q];
    }
    for(int w=0;w<k;w++){
        cin>>s[0][w]>>s[1][w];
    }
    for(int i=0;i<m;i++){
        x=b[0][i];
        y=b[1][i];
        a[x][y]=1;
        if(x+1<n){a[x+1][y]=1;}
        if(x+2<n){a[x+2][y]=1;}
        if(x+1<n||y+1<n){a[x+1][y+1]=1;}
        if(y+1<n){a[x][y+1]=1;}
        if(y+2<n){a[x][y+2]=1;}
        if(y-1>-1){a[x][y-1]=1;}
        if(y-2>-1){a[x][y-1]=1;}
        if(y-1>-1||x+1<n){a[x+1][y-1]=1;}
        if(x-1>-1||y-1>-1){a[x-1][y-1]=1;}
        if(x-1>-1){a[x-1][y]=1;}
        if(x-2>-1){a[x-2][y]=1;}
        if(x-1>-1||y+1<n){a[x-1][y+1]=1;}
    }
    for(int j=0;j<k;j++){
        x=s[0][j];
        y=s[1][j];
        a[x][y]=1;
        if(x+1<n){a[x+1][y]=1;}
        if(x+2<n){a[x+2][y]=1;}
        if(x+1<n||y+1<n){a[x+1][y+1]=1;}
        if(y+1<n){a[x][y+1]=1;}
        if(y+2<n){a[x][y+2]=1;}
        if(y-1>-1){a[x][y-1]=1;}
        if(y-2>-1){a[x][y-1]=1;}
        if(y-1>-1||x+1<n){a[x+1][y-1]=1;}
        if(x-1>-1||y-1>-1){a[x-1][y-1]=1;}
        if(x-1>-1){a[x-1][y]=1;}
        if(x-2>-1){a[x-2][y]=1;}
        if(x-1>-1||y+1<n){a[x-1][y+1]=1;}
        if(x+2<n||y+1<n){a[x+2][y+1]=1;}
        if(x+2<n||y+2<n){a[x+2][y+2]=1;}
        if(x+1<n||y+2<n){a[x+1][y+2]=1;}
        if(x+1<n||y-2>-1){a[x+1][y-2]=1;}
        if(x+2<n||y-2>-1){a[x+2][y-2]=1;}
        if(x-2>-1||y-2>-1){a[x-2][y-2]=1;}
        if(x-1>-1||y-2>-1){a[x-1][y-2]=1;}
        if(x-2>-1||y-1>-1){a[x-2][y-1]=1;}
        if(x-2>-1||y+1<n){a[x-2][y+1]=1;}
        if(x-2>-1||y+2<n){a[x-2][y+2]=1;}
        if(x-1>-1||y+2<n){a[x-1][y+2]=1;}
    }
    int ans=0;
    for(int g=0;g<n;g++){
        for(int f=0;f<n;f++){
            if(a[g][f]==0){ans++;}
        }
    }
    cout<<ans;
    return 0;
}
2025/7/31 15:01
加载中...