只有优化的地方错了
for(int num;k--;){
vector<int>vec;
cin>>num;
for(int x;num--;){
cin>>x,vec.push_back(x);
}
for(int i=0;i<vec.size();i++){
pre[i+1]=++node,suf[i+1]=++node;
}
for(int i=0;i<vec.size();i++){
if(i){
g[pre[i+1]].push_back(pre[i]);
}
g[pre[i+1]].push_back(vec[i]);
}
for(int i=vec.size()-1;i>=0;i--){
if(i!=vec.size()-1){
g[suf[i+1]].push_back(suf[i+2]);
}
g[suf[i+1]].push_back(vec[i]);
}
int now=0;
for(int i:vec){
now++,g[i+3*n].push_back(pre[now-1]),g[i+3*n].push_back(suf[vec.size()-now+1]);
}
}