fork download
  1. #include <bits/stdc++.h>
  2. #define int long long
  3. #define lb lower_bound
  4. #define pii pair<int,int>
  5. #define fi first
  6. #define se second
  7. #define ios ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
  8. #define op freopen
  9. #define sz size
  10. #define TXT "test"
  11. #define freo if(fopen(TXT".inp","r")){op(TXT".inp","r",stdin);op(TXT".out","w",stdout);}
  12.  
  13. using namespace std;
  14.  
  15. const int INF = 1e18;
  16. const int MXN = 1e5+5;
  17. mt19937 rd(chrono::steady_clock::now().time_since_epoch().count());
  18. #define rand rd
  19. int n,a[25][25],dp[1<<21];
  20. void solve()
  21. {
  22. cin>>n;
  23. for(int i=1;i<=n;i++)
  24. for(int j=1;j<=n;j++)
  25. cin>>a[i][j];
  26. for(int i=1;i<(1<<n);i++)
  27. dp[i]=-INF;
  28. dp[0]=0;
  29. for(int mask=0;mask<(1<<n);mask++)
  30. {
  31. int cnt=__builtin_popcount(mask);
  32. for(int i=1;i<=n;i++)
  33. {
  34. if(!(mask&(1<<(i-1))))
  35. {
  36. int newmask=mask|(1<<(i-1));
  37. dp[newmask]=max(dp[mask]+a[i][cnt+1],dp[newmask]);
  38. }
  39. }
  40. }
  41. cout<<dp[(1<<n)-1];
  42. }
  43. signed main()
  44. {
  45. ios;
  46. freo;
  47. solve();
  48. }
  49.  
Success #stdin #stdout 0.01s 5324KB
stdin
Standard input is empty
stdout
Standard output is empty