Cod sursa(job #476840)
Utilizator | aladin aladinn aladin | Data | 12 august 2010 14:37:12 |
---|---|---|---|
Problema | Energii | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.48 kb |
#include <cstdio>
int main()
{
int q,j,c[5001],n,x,y,i,m,min=234424242;
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
scanf("%d %d",&n,&m);
for (i=1;i<=m;++i) c[i]=min;
for (i=1;i<=n;++i)
{
scanf("%d %d",&x,&y);
for (j=m-1;j>=0;--j)
for (q=(m-j)/x+1;q>0;--q)
if (j+x*q>m) {if (c[m]>c[j]+y*q) c[m]=c[j]+y*q;} else
if (c[j+x*q]>c[j]+y*q) c[j+x*q]=c[j]+y*q;
}
if (c[m]==min) printf("-1"); else
printf("%d",c[m]);
return 0;}