Cod sursa(job #30778)
Utilizator | Beju Bogdan bog_bej | Data | 15 martie 2007 07:34:12 |
---|---|---|---|
Problema | Energii | Scor | 95 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.53 kb |
#include<stdio.h>
int n,t, c[1001], e[1001], p[5500], min, max;
int main()
{ int i,j;
freopen("energii.in","rt",stdin);
freopen("energii.out","wt",stdout);
scanf("%d %d",&n,&t);
for(i=0;i<n;i++)
scanf("%d %d",&e[i],&c[i]);
p[0]=1;
for(i=0;i<n;i++)
for(j=t-1;j>=0;j--)
if(p[j])
if(!p[j+e[i]]||p[j+e[i]]>p[j]+c[i])
p[j+e[i]]=p[j]+c[i];
for(min=10000000,i=t;i<5500;i++)
if(p[i]&&p[i]<min) min=p[i];
if(min<10000000) printf("%d\n",min-1);
else printf("-1\n");
return 0;
}