Advertisement
Guest User

Untitled

a guest
Oct 27th, 2013
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.04 KB | None | 0 0
  1. #include <cstdio>
  2. #include <string.h>
  3. using namespace std;
  4.  
  5. int n;
  6. int prob[21][21];
  7.  
  8. char vec_rijesio[1<<13];
  9. int memo[1<<13];
  10. const int INF = 0x3f3f3f3f;
  11. int rijesi( int d, int s ) {
  12. if ( d == 11 )
  13. {
  14. return 0;
  15. }
  16. if ( vec_rijesio[s] ) return memo[s];
  17. vec_rijesio[s] = 1;
  18. int &ret = memo[s];
  19. ret = -82;
  20. int tmp=0;
  21. for ( int i=0; i<11; ++i )
  22. if ( ( s & (1<<i) ) == 0 ) {
  23. if(prob[d][i]!=0)
  24. {
  25. tmp = prob[d][i] + rijesi(d + 1, s|(1<<i));
  26. if ( tmp > ret ) ret = tmp;
  27. }
  28. else tmp=-986351;
  29.  
  30. }
  31.  
  32. return ret;
  33. }
  34.  
  35. int main() {
  36. scanf( "%d", &n );
  37. for(int o=0;o<n;++o)
  38. {
  39. for ( int i=0; i<11; ++i )
  40. for ( int j=0; j<11; ++j ) {
  41. int x;
  42. scanf( "%d", &x );
  43. prob[i][j] = x;
  44. }
  45.  
  46. int ret = rijesi( 0, 0 );
  47. printf( "%d\n", ret);
  48. memset (memo,0,sizeof(memo));
  49. memset (vec_rijesio,0,sizeof(vec_rijesio));
  50. }
  51. return 0;
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement