Pagini recente » Cod sursa (job #169559) | Cod sursa (job #1384765) | Cod sursa (job #193699) | Cod sursa (job #1674681) | Cod sursa (job #752285)
Cod sursa(job #752285)
#include<cstdio>
using namespace std;
int s2,n,s1,e,c,mini,i,j,s[5902],e1[1004],c1[1004];
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
scanf("%d",&n);
scanf("%d",&s1);
mini=999999999;
for(i=1;i<=n;i++)
{
scanf("%d",&e1[i]);
scanf("%d",&c1[i]);
e=e1[i];
c=c1[i];
s2=s2+e;
for(j=s1;j>=1;j--)
if(s[j]!=0)
{
if(j+e<=s1&&s[j+e]==0||s[j+e]>s[j]+c) s[j+e]=s[j]+c;
if(j+e>s1&&s[j]+c<mini) mini=s[j]+c;
}
if(e>s1&&c<mini) mini=c;
if(s[e]==0||s[e]>c) s[e]=c;
}
for(i=1;i<=n;i++)
{
e=e1[i];
c=c1[i];
for(j=s1-e;j<=s1;j++)
if(s[j]!=0&&s[j]+c<mini) mini=s[j]+c;
}
if(s[s1]>0&&s[s1]<mini) mini=s[s1];
if(mini!=999999999&&s2>=s1) printf("%d\n",mini);
else printf("-1\n");
return 0;
}