Cod sursa(job #752284)

Utilizator geniucosOncescu Costin geniucos Data 28 mai 2012 11:58:04
Problema Energii Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include<cstdio>
using namespace std;
int s2,n,s1,e,c,mini,i,j,s[5902];
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",&e);
	scanf("%d",&c);
	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;
}
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;
}