Cod sursa(job #140362)
| Utilizator | Data | 21 februarie 2008 19:57:09 | |
|---|---|---|---|
| Problema | Energii | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.51 kb |
#include <cstdio>
#define GM 1010
#define WM 5010
#define inf 2000000000
long a[WM];
int v[WM], c[WM];
int g, w;
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
scanf("%d\n%d", &g, &w);
for (int i=1; i<=g; ++i)
scanf("%d%d", &v[i], &c[i]);
for (int i=1; i<=w; ++i)
a[i]=inf;
a[0]=0;
for (int i=1; i<=w; ++i)
for (int j=1; j<=g; ++j)
if (i-j>=0)
if (a[i]>a[i-v[j]])
a[i]=a[i-v[j]]+c[j];
printf("%ld", a[w]);
return 0;
}
