Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <bits/stdc++.h>
- using namespace std;
- const int maxn=1e3;
- int n;
- int check[maxn];
- int x[maxn];
- int c[maxn][maxn];
- int pr=0;
- int opr=INT_MAX;
- void backtracking(int k)
- {
- for (int i=2;i<=n;i++)
- if (check[i]==0)
- {
- check[i]=1;
- x[k]=i;
- pr += c[x[k-1]][i];
- if (k==n){
- for (int j=1;j<=n;j++)
- opr=min(opr,pr);
- }else backtracking(k+1);
- check[i]=0;
- x[k]=0;
- pr-= c[x[k-1]][i];
- }
- }
- int main()
- {
- cin>>n;
- for (int i=1;i<=n;i++)
- for (int j=1;j<=n;j++)
- cin>>c[i][j];
- x[1]=1;
- backtracking(2);
- cout<<opr;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement