#include #include #include #include #define m 4 int main(){ int graf[m][m]; for (auto & i : graf) { for (int & j : i) { std::cin>>j; } } bool visited[m]; for (bool & i : visited) { i= false; } int path[4]={0,0,0,0}; int obecne=0; std::mapmozliwe; std::vectorpomoc; for (int j = 0; j < 5; j++) { visited[obecne] = true; for (int i = 0; i < m; i++) { if (i != obecne && !visited[i]) { mozliwe.insert({i,graf[obecne][i]}); pomoc.emplace_back(graf[obecne][i]); } } sort(pomoc.begin(),pomoc.end()); for (auto it=mozliwe.begin();it != mozliwe.end();it++) { if(it->second==pomoc[0]){ path[j]=graf[obecne][it->first]; obecne=it->first; } } mozliwe.clear(); pomoc.clear(); } //wracam do miasta 1 if (visited[0]&&visited[1]&&visited[2]&&visited[3]){ path[3]=graf[obecne][0]; } int out=0; for (int i : path) { out+=i; } std::cout<