← Back to topics
Topic

z-bankar?

f
froje
Kako se ovo rješava? DP?

S ovim sam ja pokušao( counting change )

int N, K;
int dp[50001], c[101];

scanf( "%d %d", &N, &K );
FOR( 0, N ) scanf( "%d", &c[i] );
fill( dp, dp+K+1, INT_MAX );
dp[0] = 0;

for( int i = 0; i < N; ++i )
for( int j = 1; j <= K; ++j )
if( c[i] <= j )
dp[j] <?= ( dp[j-c[i]] + 1 );

if( dp[K] == INT_MAX ) printf( "-1" );
else printf( "%d\n", dp[K] );
n
nrmmyth
sort( novac, novac + n );

for( int i = 0; i < n; ++i )
{
int x = novac[i];
c[x] = 1;
for( int j = x + 1; j <= k; ++j )
{
if( c[j-x] != 0 ) // moze se izgraditi od prijasnjeg
{
if( c[j] == 0 )
c[j] = c[j-x] + 1;
else
c[j] = std::min( c[j], c[j-x] + 1 );
}
}
};
b
bojarovski
Ovaa zadacka mi paga na poslednite dve resenija. Moze nekoj da mi kaze sto e fintata so tie dve.
d
dimitar
Prati ti gi poslednite 2 testa na private