Pagini recente » Monitorul de evaluare | Cod sursa (job #3214718) | Probleme de Taietura | Cod sursa (job #2814066) | Cod sursa (job #1344071)
#include <stdio.h>
int s[15010];
struct date{int e,c;};
date v[1010];
int main(){
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
int i,j,n,m,min=10001*1001;
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
scanf("%d%d",&v[i].e,&v[i].c);
for(i=1;i<=n;i++)
for(j=m;j>=1;j--){
if(s[j]!=0){
if(s[j+v[i].e]==0||s[j+v[i].e]>s[j]+v[i].c)
s[j+v[i].e]=s[j]+v[i].c;
if(j+v[i].e>=m&&s[j+v[i].e]<min)
min=s[j+v[i].e];
}
if(s[v[i].e]==0||s[v[i].e]>v[i].c)
s[v[i].e]=v[i].c;
if(v[i].e>=m&&s[v[i].e]<min)
min=s[v[i].e];
}
if(min==10001*1001)
min=-1;
printf("%d",min);
return 0;
}