Code is giving segmentation fault, although it is running fine on the local system.
#include<bits/stdc++.h>
using namespace std;
class Graph{
int vertices;
vector<vector<int> > adjList;
public:
Graph(int vertices){
this->vertices = vertices;
adjList.resize(vertices+1);
}
void addEdge(int u, int v){
adjList[u].push_back(v);
adjList[v].push_back(u);
}
vector<int> getAllShortestDistance(int startNode){
vector<int> distance(vertices+1, INT_MAX);
distance[startNode] = 0;
queue<int> q;
q.push(startNode);
while(!q.empty()){
int frontNode = q.front(); q.pop();
int frontDistance = distance[frontNode];
for(int neigh :adjList[frontNode]){
if(distance[neigh] > frontDistance + 1){
distance[neigh] = frontDistance + 1;
q.push(neigh);
}
}
}
for(int i = 0; i<=vertices; i++){
if(distance[i] == INT_MAX){
distance[i] = -1;
}
else{
distance[i] *= 6;
}
}
distance.erase(distance.begin()+startNode);
distance.erase(distance.begin());
return distance;
}
};
int main(){
//freopen("in.txt","r",stdin);
int testCases;
cin>>testCases;
while(testCases--){
int vertices, edges;
cin>>vertices>> edges;
Graph g(vertices);
for(int i = 0; i<edges; i++){
int u,v;
cin>>u>>v;
g.addEdge(u, v);
}
int node;
cin>>node;
vector<int> distance = g.getAllShortestDistance(node);
for(int dist: distance){
cout<<dist<<" ";
}
cout<<endl;
}
return 0;
}