Submission #1283327

#TimeUsernameProblemLanguageResultExecution timeMemory
1283327diep38Kronican (COCI16_kronican)C++20
100 / 100
929 ms16072 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long int n,k; int a[50][50]; ll dp[2000005]; ll bitmask(int x){ if(__builtin_popcount(x)==k){ return 0; } ll val=1e18; if(dp[x]!=-1) return dp[x]; for(int i=0;i<n;++i){ if((x&(1<<i))){ for(int j=0;j<n;++j){ if((x&(1<<j)) && j!=i){ val=min(val,bitmask(x&(~(1<<j)))+a[j][i]); } } } } return dp[x]=val; } signed main(){ memset(dp,-1,sizeof dp); cin>>n>>k; for(int i=0;i<n;++i){ for(int j=0;j<n;++j) cin>>a[i][j]; } cout<<bitmask((1<<n)-1); }
#Verdict Execution timeMemoryGrader output
Fetching results...