#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define int ll
#define fr first
#define sc second
#define pb push_back
#define endl "\n"
#define all(x) x.begin(),x.end()
#define sp << " " <<
#define inf 1e15
#define N 1000000
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
typedef tuple<int,int,int> tiii;
typedef pair<int,int> pii;
int32_t main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);cout.tie(NULL);
int n;
cin >> n;
int f[n][n],dp[n][n];
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
cin >> f[i][j];
for(int i=0;i<n;i++)
dp[i][0]=0;
for(int j=1;j<n;j++){
for(int i=0;i<n;i++){
int t=-j&j;
dp[i][j]=inf;
for(int k=0;k<t;k++)
dp[i][j]=min(dp[i][j],dp[i^t^k][j-1]+f[i][i^t^k]);
}
}
int ans=inf;
for(int i=0;i<n;i++)
ans=min(ans,dp[i][n-1]);
cout << ans << endl;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |