Advertisement
Guest User

Untitled

a guest
Mar 24th, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.44 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. class way{
  7. public:
  8.     char start;
  9.     char end;
  10.     int weight;
  11.     friend ostream& operator<<(ostream & out, const way & way1){
  12.         out << way1.start << "->" << way1.end << " " << way1.weight;
  13.     }
  14.     friend istream& operator>>(istream & in, way & way1){
  15.         in >> way1.start >> way1.end >> way1.weight;
  16.     }
  17.  
  18.     way(): weight(0){}
  19.     way(char start, char end, int weight): start(start), end(end), weight(weight){}
  20.  
  21. };
  22.  
  23. way minWeight(vector<way> ways, char start, char end, int k = 0){
  24.     way min;
  25.     for (int i = 0; i < ways.size(); i++)
  26.         if (ways[i].start == start) {min = ways[i]; break;}
  27.     if (min.weight == 0)
  28.     if (min.end != end)
  29.     {
  30.         for (int i = 0; i < ways.size(); i++)
  31.             if ((ways[i].weight < min.weight) && (ways[i].start == start)) {
  32.                 min = ways[i];
  33.                 k = i;
  34.             }
  35.         minWeight(ways, min.end, end, k);
  36.     }
  37.     cout << min.start;
  38.     return min;
  39. }
  40.  
  41. int main() {
  42.     char start, end;
  43.     cin >> start >> end;
  44.     vector<way> ways;
  45.     way ways1;
  46.     int i = 0;
  47.     char b = start;
  48.     char a; int c;
  49.     while (b != end){
  50.         cin >> a >> b >> c;
  51.         way ways1(a,b,c);
  52.         ways.push_back(ways1);
  53.     }
  54.  
  55.  
  56.     for (int i = 0; i < ways.size(); i++) {
  57.         cout << ways[i];
  58.         cout << endl;
  59.     }
  60.  
  61.     minWeight(ways, start, end);
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement