Cod sursa(job #783854)

Utilizator stef1995mmarcu stefan ovidiu stef1995m Data 4 septembrie 2012 12:05:25
Problema Energii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<iostream>
#include<fstream>
using namespace std;
const int maxx1=10006,maxx2=15010,inf=20000000;
int n,s,a,b,i,j,cost[maxx2],minim=inf,maxim,maxim2;
int main()
{
	freopen("energii.in","r",stdin);
	freopen("energii.out","w",stdout);
	scanf("%d %d\n",&n,&s);
	for(i=0;i<=s+maxx1;i++)
		cost[i]=inf;
	for(i=1;i<=n;i++)
	{
		scanf("%d %d\n",&a,&b);
		maxim2=maxim;
		for(j=0;j<=maxim;j++)
			if(cost[j]!=inf)
			{
				cost[j+a]=min(cost[j+a],cost[j]+b);
				maxim2=max(maxim2,j+a);
			}
		cost[a]=min(cost[a],b);
		maxim=max(maxim2,a);
	}
	for(j=s;j<=s+maxx1;j++)
		minim=min(minim,cost[j]);
	if(minim==inf)
		minim=-1;
	printf("%d\n",minim);
	return 0;
}