做pta题目1013 Battle Over Cities (25 分)的代码出现段错误
https://pintia.cn/problem-sets/994805342720868352/problems/994805500414115840
代码为什么出现段错误
#include <stdio.h>
#include <string.h>
int vis[1005],n,m,k;
int a[1005][1005];
void DFS(int v){
//if(v==delet) return;
vis[v]=1;
for(int i=1;i<=n;i++)
{
if(a[v][i]==1&&vis[i]==0){
DFS(v);
}
}
}
int main()
{
scanf("%d %d %d",&n,&m,&k);
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
a[i][j]=-1;
}
}
for(int i=0;i<m;i++){
int x,y;
scanf("%d %d",&x,&y);
a[x][y]=1;
a[y][x]=1;
}
while(k--){
int delet;
scanf("%d",&delet);
int block=0;
//vis[delet]=1;
memset(vis,0,sizeof(vis));
for(int i=1;i<=n;i++){
if(vis[i]==0){
DFS(i);
block++;
}
}
printf("%d\n",block-1);
}
return 0;
}