#include <iostream>
#include <vector>
using namespace std;
bool check_all_denominations( vector< bool > P, int v, vector< int > x)
{
P[ 0 ] = true ;
for ( int i = 1 ; i <= x.size ( ) ; i++ )
{
P[ x[ i] ] = true ;
}
for ( int h = 0 ; h <= v; h++ )
{
bool result = false ;
for ( int j = 1 ; j <= x.size ( ) ; j++ )
{
if ( x[ j] <= h)
result = result || * P[ h- x[ j] ] ;
}
P[ h] = result;
}
cout << "P: [" ;
for ( int i = 0 ; i <= P.size ( ) ; i++ )
{
cout << P[ i] + " ," ;
}
cout << "]" ;
return P[ v] ;
}
int main( ) {
vector< int > ints;
ints.push_back ( 3 ) ;
ints.push_back ( 7 ) ;
vector< bool > test;
for ( int i = 0 ; i < 70 ; i++ )
{
test.push_back ( false ) ;
}
cout << check_all_denominations( test, 40 , ints ) ? "True" : "False" ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKYm9vbCBjaGVja19hbGxfZGVub21pbmF0aW9ucyh2ZWN0b3I8Ym9vbD4gUCwgaW50IHYsIHZlY3RvcjxpbnQ+IHgpCnsKCVBbMF0gPSB0cnVlOwoJCglmb3IgKGludCBpID0gMTsgaSA8PSB4LnNpemUoKTsgaSsrKQoJewoJCVBbeFtpXV0gPSB0cnVlOwoJfQoJZm9yIChpbnQgaCA9IDA7IGggPD0gdjsgaCsrKQoJewoJCWJvb2wgcmVzdWx0ID0gZmFsc2U7CgkJZm9yIChpbnQgaiA9IDE7IGogPD0geC5zaXplKCk7IGorKykKCQl7CgkJCWlmICh4W2pdIDw9IGgpCgkJCQlyZXN1bHQgPSByZXN1bHQgfHwgKlBbaC14W2pdXTsKCQl9CgkJUFtoXSA9IHJlc3VsdDsKCX0KCWNvdXQgPDwgIlA6IFsiOwoJZm9yIChpbnQgaSA9IDA7IGkgPD0gUC5zaXplKCk7IGkrKykKCXsKCQljb3V0IDw8IFBbaV0gKyAiICwiOwoJfQoJY291dCA8PCAiXSI7CglyZXR1cm4gUFt2XTsKfQoKaW50IG1haW4oKSB7Cgl2ZWN0b3I8aW50PiBpbnRzOwoJaW50cy5wdXNoX2JhY2soMyk7CglpbnRzLnB1c2hfYmFjayg3KTsKCXZlY3Rvcjxib29sPiB0ZXN0OwoJCglmb3IgKGludCBpID0gMDsgaSA8IDcwOyBpKyspCgl7CgkJdGVzdC5wdXNoX2JhY2soZmFsc2UpOwoJfQoJY291dCA8PCBjaGVja19hbGxfZGVub21pbmF0aW9ucyh0ZXN0LCA0MCwgaW50cyApID8gIlRydWUiIDogIkZhbHNlIjsKfQ==
compilation info
prog.cpp: In function 'bool check_all_denominations(std::vector<bool>, int, std::vector<int>)':
prog.cpp:19:24: error: no match for 'operator*' (operand type is 'std::vector<bool>::reference {aka std::_Bit_reference}')
result = result || *P[h-x[j]];
^
stdout