Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- using namespace std;
- class way{
- public:
- char start;
- char end;
- int weight;
- friend ostream& operator<<(ostream & out, const way & way1){
- out << way1.start << "->" << way1.end << " " << way1.weight;
- }
- friend istream& operator>>(istream & in, way & way1){
- in >> way1.start >> way1.end >> way1.weight;
- }
- way(): weight(0){}
- way(char start, char end, int weight): start(start), end(end), weight(weight){}
- };
- way minWeight(vector<way> ways, char start, char end, int k = 0){
- way min;
- for (int i = 0; i < ways.size(); i++)
- if (ways[i].start == start) {min = ways[i]; break;}
- if (min.weight == 0)
- if (min.end != end)
- {
- for (int i = 0; i < ways.size(); i++)
- if ((ways[i].weight < min.weight) && (ways[i].start == start)) {
- min = ways[i];
- k = i;
- }
- minWeight(ways, min.end, end, k);
- }
- cout << min.start;
- return min;
- }
- int main() {
- char start, end;
- cin >> start >> end;
- vector<way> ways;
- way ways1;
- int i = 0;
- char b = start;
- char a; int c;
- while (b != end){
- cin >> a >> b >> c;
- way ways1(a,b,c);
- ways.push_back(ways1);
- }
- for (int i = 0; i < ways.size(); i++) {
- cout << ways[i];
- cout << endl;
- }
- minWeight(ways, start, end);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement