Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdbool.h>
- int n, s;
- int G[20][20];
- int box[20];
- bool use[20];
- int ans = 0x3f3f3f3f;
- void permutation(int idx) {
- if (idx == n) {
- int dist = 0;
- for (int i = 1; i <= n; i++)
- dist += G[box[i - 1]][box[i]];
- if (dist < ans)
- ans = dist;
- return;
- }
- for (int i = 1; i <= n; i++) {
- if (!use[i]) {
- use[i] = true;
- box[idx] = i;
- permutation(idx + 1);
- use[i] = false;
- }
- }
- }
- int main() {
- scanf("%d%d", &n, &s);
- for (int i = 1; i <= n; i++)
- for (int j = 1; j <= n; j++)
- scanf("%d", &G[i][j]);
- box[0] = s;
- box[n] = s;
- use[s] = true;
- permutation(1);
- printf("%d\n", ans);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement