// PR Bab 11, soal 4 -- pembahasan. #include #include using namespace std; int jarak[10][10]; int main() { int n; cin >> n; for (int i = 0; i < n; i++) for (int j = 0; j < n; j++) cin >> jarak[i][j]; int kota[16]; int m = 0; for (int i = 1; i < n; i++) kota[m++] = i; // kota 0 selalu pertama sort(kota, kota + m); int terpendek = 2000000000; do { int panjang = 0; int sekarang = 0; for (int i = 0; i < m; i++) { panjang += jarak[sekarang][kota[i]]; sekarang = kota[i]; } if (panjang < terpendek) terpendek = panjang; } while (next_permutation(kota, kota + m)); if (n == 1) terpendek = 0; cout << terpendek << "\n"; return 0; }