使用此代码提交,4个点AC,6个点RE,报错信息:
Runtime Error. Received signal 11: Segmentation fault with invalid memory reference.
请大佬帮忙看看这是怎么回事?
#include<bits/stdc++.h>
using namespace std;
int n;
queue<int>q;
map<int,int>indexx;
int cnt=0,vis[9990001]={},d[9990001]={},a[5001][5001]={},pos[9990001]={},m[9990001]={},mapp[5001][5001]={};
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>pos[i]>>m[i];
indexx[pos[i]]=i;
for(int j=1;j<=m[i];j++){
cin>>a[i][j];
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m[i];j++){
int position=a[i][j];
if(indexx.find(position)!=indexx.end())mapp[i][indexx[position]]=1;
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(mapp[i][j]==1){
d[j]++;
}
}
}
do{
for(int i=1;i<=n;i++){
if(!vis[i]&&d[i]==0){
q.push(i);
vis[i]=1;
cnt++;
for(int j=1;j<=n;j++){
if(mapp[i][j]==1){
d[j]--;
}
}
}
}
q.pop();
}while(!q.empty());
if(cnt==n){
cout<<"YES";
}else{
cout<<n-cnt;
}
return 0;
}