Pagini recente » Cod sursa (job #1755556) | Cod sursa (job #2492401) | Cod sursa (job #1727737) | Cod sursa (job #1288220) | Cod sursa (job #1899798)
#include <fstream>
#define Wmax 5002
#define Gmax 1001
#define inf (1 << 30)
using namespace std;
ifstream f ("energii.in");
ofstream g ("energii.out");
int G, w, e, c;
int P[ Gmax ], C[ Gmax ], v[ Wmax ];
int main()
{
f >> G >> w;
for ( int i = 0; i <= w; ++ i )
v[ i ] = inf;
for ( int i = 1; i <= G; ++ i )
f >> P[ i ] >> C[ i ];
for ( int i = 1; i <= G; ++ i )
{
for ( int j = w; j >= 1; -- j )
{
if( P[ i ] >= j )
v[ j ] = min( v[ j ], C[ i ] );
else if ( v[ j - P[ i ] ] != inf )
v[ j ] = min( v[ j ], v[ j - P[ i ] ] + C[ i ] );
}
}
g << ( v[ w ] != inf ? v[ w ] : -1 );
return 0;
}