救命

P1789 【Mc生存】插火把

第31行是就j<=n
by chenzexin2012 @ 2024-03-23 12:26:47


RE是因为火把没判断越界 给你改了改: ```cpp #include<bits/stdc++.h> using namespace std; int n,m,k,x,y,a[105][105],cnt; int main(){ cin>>n>>m>>k; for(int i=0;i<m;i++){ cin>>x>>y; if(y+1<=n){ a[x][y+1]=1; if(x-1>=1){ a[x-1][y+1]=1; } if(y+2<=n) a[x][y+2]=1; if(x+1<=n) a[x+1][y+1]=1; } if(y-1>=1){ a[x][y-1]=1; if(y-2>=1) a[x][y-2]=1; if(x-1>=1) a[x-1][y-1]=1; if(x+1<=n) a[x+1][y-1]=1; } 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>=0){ a[x-1][y]=1; if(x-2>=0) a[x-2][y]=1; } } for(int i=0;i<k;i++){ cin>>x>>y; for(int j=x-2;j<=x+2;j++){ for(int l=y-2;l<=y+2;l++){ if(j>=1&&l>=1)a[j][l]=1; } } } for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ if(a[i][j]==0){ cnt++; } } } cout<<cnt; return 0; } ```
by chenzexin2012 @ 2024-03-23 12:37:27


|