Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <queue>
- #include <vector>
- using namespace std;
- int main()
- {
- int numofgraphVertex, numofgraphEdges;
- queue<int> Queue;
- ifstream fin ("pathbge1.in");
- ofstream fout ("pathbge1.out");
- fin >> numofgraphVertex >> numofgraphEdges;
- vector<vector<int>> AdjacencyList(numofgraphVertex, vector<int>());
- int mindistance[numofgraphVertex];
- for(int md = 0; md < numofgraphVertex; ++md)
- {
- mindistance[md] = INT32_MAX;
- }
- int col1, col2;
- for(int i = 0; i < numofgraphEdges; ++i)
- {
- fin >> col1 >> col2;
- AdjacencyList[col1 - 1].push_back(col2 - 1);
- AdjacencyList[col2 - 1].push_back(col1 - 1);
- }
- int nodes[numofgraphVertex];
- Queue.push(0);
- mindistance[0] = 0;
- nodes[0] = 1;
- while (!Queue.empty())
- {
- int curNode = Queue.front();
- Queue.pop();
- for (int vertex = 0; vertex < AdjacencyList[curNode].size(); ++vertex)
- {
- if (mindistance[AdjacencyList[curNode][vertex]] > mindistance[curNode] + 1)
- {
- nodes[AdjacencyList[curNode][vertex]] = 1;
- Queue.push(AdjacencyList[curNode][vertex]);
- mindistance[AdjacencyList[curNode][vertex]] = mindistance[curNode] + 1;
- }
- }
- }
- for (int i = 0; i < numofgraphVertex; ++i)
- {
- fout << mindistance[i] << ' ';
- }
- fin.close();
- fout.close();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement