Pagini recente » Cod sursa (job #2528275) | Cod sursa (job #2705319) | Cod sursa (job #2557454) | Cod sursa (job #3187942) | Cod sursa (job #2243271)
#include <fstream>
#define maxn 1000
#define maxx 5000
using namespace std;
typedef struct
{
int val, cst;
}gen;
gen v[maxn+5];
int dp[maxx+5];
int main ()
{
int n, x;
ifstream fin ( "energii.in" );
ofstream fout ( "energii.out" );
fin >> n >> x;
int i;
for ( i = 0; i < n; i++ )
fin >> v[i].val >> v[i].cst;
for ( i = 0; i <= x; i++ )
dp[i] = maxx*maxn+1;
int j, newx;
for ( i = 0; i < n; i++ )
{
if ( dp[v[i].val] > v[i].cst )
dp[v[i].val] = v[i].cst;
for ( j = x - 1; j >= 0; j-- )
{
newx = min ( x, j + v[i].val );
//printf ( "i %d newx %d dp[newx] %d dp[j] %d v[i].cst %d\n", i, newx, dp[newx], dp[j], v[i].cst );
if ( dp[newx] > dp[j] + v[i].cst )
dp[newx] = dp[j] + v[i].cst;
}
}
fout << dp[x];
fin.close ();
fout.close ();
return 0;
}