Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdio>
- #include <string.h>
- using namespace std;
- int n;
- int prob[21][21];
- char vec_rijesio[1<<13];
- int memo[1<<13];
- const int INF = 0x3f3f3f3f;
- int rijesi( int d, int s ) {
- if ( d == 11 )
- {
- return 0;
- }
- if ( vec_rijesio[s] ) return memo[s];
- vec_rijesio[s] = 1;
- int &ret = memo[s];
- ret = 0;
- for ( int i=0; i<11; ++i )
- if ( ( s & (1<<i) ) == 0 ) {
- if(prob[d][i]!=0)
- {
- int tmp = prob[d][i] + rijesi(d + 1, s|(1<<i));
- if ( tmp > ret ) ret = tmp;
- }
- }
- return ret;
- }
- int main() {
- scanf( "%d", &n );
- for(int o=0;o<n;++o)
- {
- for ( int i=0; i<11; ++i )
- for ( int j=0; j<11; ++j ) {
- int x;
- scanf( "%d", &x );
- prob[i][j] = x;
- }
- int ret = rijesi( 0, 0 );
- printf( "%d\n", ret);
- memset (memo,0,sizeof(memo));
- memset (vec_rijesio,0,sizeof(vec_rijesio));
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement