Pagini recente » Cod sursa (job #1728640) | Cod sursa (job #222379) | Cod sursa (job #1185767) | Cod sursa (job #2901468) | Cod sursa (job #138047)
Cod sursa(job #138047)
#include <stdio.h>
#define lim 2000
int i,j,n,s,min;
int en[5010],g[5010][2];
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
scanf("%d",&n);
scanf("%d",&s);
for (i=1; i<=n; i++)
scanf("%d %d",&g[i][0],&g[i][1]);
min=lim;
for (i=1; i<=s; i++) en[i]=lim;
for (i=1; i<=n; i++)
{
for (j=1; j<=s; j++)
{
if (j+g[i][0]<s && en[j+g[i][0]]>en[j]+g[i][1]) en[j+g[i][0]]=en[j]+g[i][1];
if (j+g[i][0]>=s && min>en[j]+g[i][1]) min=en[j]+g[i][1];
}
if (g[i][0]>=s && g[i][1]<min) min=g[i][1];
if (g[i][0]<s && g[i][1]<en[g[i][0]]) en[g[i][0]]=g[i][1];
}
if (min!=lim) printf("%d\n",min);
else printf("-1\n");
return 0;
}