Pagini recente » Cod sursa (job #2725558) | Cod sursa (job #632540) | Cod sursa (job #2870022) | Cod sursa (job #2216812) | Cod sursa (job #144335)
Cod sursa(job #144335)
#include <stdio.h>
#define GMAX 1005
#define WMAX 5005
#define INF 100000000
int g, w, e[GMAX], c[GMAX], r[WMAX];
int main()
{
int i, j, min, l;
freopen("energii.in", "r", stdin);
freopen("energii.out", "w", stdout);
scanf("%d %d", &g, &w);
for ( i = 1; i <= g; i++)
scanf("%d %d", &e[i], &c[i]);
min = INF;
for ( i = 1; i <= w; i++)
r[i] = INF;
for ( i = 1; i <= g; i++)
{
for ( j = w; j >= 1; j--)
{
l = j + e[i];
if ( l < w )
{
if ( c[i] + r[j] < r[l])
r[l] = c[i] + r[j];
}
else
if ( c[i] + r[j] < min)
min = c[i] + r[j];
}
if ( e[i] < w)
{
if ( c[i] < r[e[i]])
r[e[i]] = c[i];
}
else
if ( c[i] < min)
min = c[i];
}
if ( min == INF)
printf("-1\n");
else
printf("%d\n", min);
return 0;
}