Pagini recente » Cod sursa (job #2127351) | Cod sursa (job #3190216) | Cod sursa (job #1593898) | Cod sursa (job #707509) | Cod sursa (job #221038)
Cod sursa(job #221038)
#include <stdio.h>
#define N 1005
#define SMAX 10005
#define MAX 50000005
int cost[N],val[N],v[SMAX],s,n;
void citirith()
{
scanf("%d%d",&n,&s);
for (int i=1; i<=n; i++)
scanf("%d%d",&val[i],&cost[i]);
}
int minim()
{
int i,min=MAX;
for (i=s; i<SMAX; i++)
if(v[i]<min)
min=v[i];
return min;
}
void rezolvarith()
{
int i,j;
for (i=1; i<SMAX; i++)
v[i]=MAX;
for (i=1; i<=n; ++i)
{
for (j=s-1; j>=1; --j)
if (v[j]!=MAX)
if (v[j]+cost[i]<v[j+val[i]])
v[j+val[i]]=v[j]+cost[i];
if (cost[i]<v[val[i]])
v[val[i]]=cost[i];
}
if (minim()!=MAX)
printf("%d\n",minim());
else
printf("-1\n");
}
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
citirith();
rezolvarith();
}