fork download
  1. #include <bits/stdc++.h>
  2. using namespace std ;
  3. const int N = 30 ;
  4. int n ;
  5. int c[N][N] ;
  6. int choose[N] ;
  7. int ans[N] ;
  8. int used[N] ;
  9. int res = -1 ;
  10. void dq( int id , int curc ){
  11. if ( id > n ){
  12. if ( curc > res ){
  13. res = curc ;
  14. for ( int i = 1 ; i <= n ; i++ )
  15. ans[i] = choose[i] ;
  16. }
  17. return ;
  18. }
  19. for ( int i = 1 ; i <= n ; i++ ){
  20. if ( !used[i] ){
  21. used[i] = 1 ;
  22. choose[id] = i ;
  23. dq( id + 1 , curc + c[id][i] ) ;
  24. used[i] = 0 ;
  25. }
  26. }
  27. }
  28. int main(){
  29. cin >> n ;
  30. for ( int i = 1 ; i <= n ; i++ ){
  31. for ( int j = 1 ; j <= n ;j++ ){
  32. cin >> c[i][j] ;
  33. }
  34. }
  35. dq( 1 , 0 ) ;
  36. cout << res << endl ;
  37. for ( int i = 1 ; i <= n ;i++ )
  38. cout << ans[i] << " " ;
  39. }
  40.  
Success #stdin #stdout 0s 5320KB
stdin
Standard input is empty
stdout
0