Facebook
From Silly Mockingjay, 3 Years ago, written in C++.
Embed
Download Paste or View Raw
Hits: 73
  1. #include <iostream>
  2. #include <map>
  3. #include <vector>
  4. #include <algorithm>
  5. #define m 4
  6.  
  7.  
  8. int main(){
  9.  
  10.     int graf[m][m];
  11.     for (auto & i : graf) {
  12.         for (int & j : i) {
  13.             std::cin>>j;
  14.         }
  15.     }
  16.  
  17.     bool visited[m];
  18.     for (bool & i : visited) {
  19.         i= false;
  20.     }
  21.     int path[4]={0,0,0,0};
  22.     int obecne=0;
  23.     std::map<int, int>mozliwe;
  24.     std::vector<int>pomoc;
  25.  
  26.     for (int j = 0; j < 5; j++) {
  27.  
  28.         visited[obecne] = true;
  29.  
  30.         for (int i = 0; i < m; i++) {
  31.             if (i != obecne && !visited[i]) {
  32.                 mozliwe.insert({i,graf[obecne][i]});
  33.                 pomoc.emplace_back(graf[obecne][i]);
  34.  
  35.             }
  36.         }
  37.         sort(pomoc.begin(),pomoc.end());
  38.         for (auto it=mozliwe.begin();it != mozliwe.end();it++) {
  39.             if(it->second==pomoc[0]){
  40.                 path[j]=graf[obecne][it->first];
  41.                 obecne=it->first;
  42.             }
  43.         }
  44.         mozliwe.clear();
  45.         pomoc.clear();
  46.  
  47.     }
  48.     //wracam do miasta 1
  49.     if (visited[0]&&visited[1]&&visited[2]&&visited[3]){
  50.         path[3]=graf[obecne][0];
  51.     }
  52.     int out=0;
  53.     for (int i : path) {
  54.         out+=i;
  55.     }
  56.  
  57.     std::cout<<out;
  58.  
  59.     return 0;
  60. }