Submission #892425

#TimeUsernameProblemLanguageResultExecution timeMemory
892425I_FloPPed21Bank (IZhO14_bank)C++17
71 / 100
1054 ms25188 KiB
#include <bits/stdc++.h>
using namespace std;

int n, m ;
int v[ 21 ], b [ 21 ] ;
bool dp [21  ] [ 1200000 ];
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    cin >> n >> m ;

    for ( int i = 1; i <= n  ; i ++ )
    {
        cin >> v[ i ] ;
    }

    for ( int i = 1; i <= m  ; i ++ )
        cin >> b[ i ] ;

    vector<int> posib [ n + 1] ;
    memset(dp, false, sizeof dp );
    for ( int i = 1 ; i <= n ; i ++ )
    {
        for ( int j = 0 ; j < ( 1 << m ) ; j ++ )
        {
            int sum = 0 ;
            for ( int f = 1 ; f <= m ; f ++ )
            {
                if ( j & ( 1 << ( f - 1 ) ) )
                    sum += b[ f ] ;
            }

            if ( sum == v[ i ] )
            {
                posib [ i ] .push_back( j ) ;

            }
        }


    }


    dp [ 0 ][ 0 ] = true ;



    for ( int i = 1; i <= n ; i ++ )
    {
        for ( int j = 0 ; j < ( 1 << m ) ; j ++ )
        {
            if ( dp [ i - 1 ] [ j ] == true )
            {
                for  (int k = 0 ; k < posib [ i ] .size() ; k ++ )
                {


                    if ( (( j ) & ( posib [ i ][ k ] )) == 0 )
                    {
                        int val = (posib [ i ][ k ] | ( j  ));


                        dp [ i ] [ val ] = true ;
                        if ( i == n )
                        {
                            cout << "YES" << '\n';
                            return 0  ;
                        }
                    }
                }
            }
        }
    }
    cout << "NO" << '\n';

    return 0;
}

Compilation message (stderr)

bank.cpp: In function 'int main()':
bank.cpp:56:37: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   56 |                 for  (int k = 0 ; k < posib [ i ] .size() ; k ++ )
      |                                   ~~^~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...