What's wrong with my code:-S
----------------------------------------------------------
#include <iostream>
using namespace std;
int main()
{
int n, K;
scanf( "%d %d", &n, &K );
int niz[n], dp[K];
for( int i = 0; i < n; i++ )
scanf( "%d", &niz[i] );
for( int i = 1; i <= K; i++ )
dp[i] = INT_MAX;
sort( niz, niz+n );
for( int i = 1; i <= K; i++ )
for( int j = 0; j < n; j++ )
if( niz[j] <= i ) min( dp[i], dp[i - niz[j]] + 1 );
if( dp[K] == INT_MAX ) cout << "-1" << endl;
else cout << dp[K] << endl;
system( "pause" );
}
----------------------------------------------------------
----------------------------------------------------------
#include <iostream>
using namespace std;
int main()
{
int n, K;
scanf( "%d %d", &n, &K );
int niz[n], dp[K];
for( int i = 0; i < n; i++ )
scanf( "%d", &niz[i] );
for( int i = 1; i <= K; i++ )
dp[i] = INT_MAX;
sort( niz, niz+n );
for( int i = 1; i <= K; i++ )
for( int j = 0; j < n; j++ )
if( niz[j] <= i ) min( dp[i], dp[i - niz[j]] + 1 );
if( dp[K] == INT_MAX ) cout << "-1" << endl;
else cout << dp[K] << endl;
system( "pause" );
}
----------------------------------------------------------