Cod sursa(job #221029)

Utilizator AthanaricCirith Gorgor Athanaric Data 14 noiembrie 2008 09:52:49
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <stdio.h>
#define N 1005
#define SMAX 10005
#define MAX 2000000000
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]);
}
void rezolvarith()
{
	int i,j;
	//for (i=1; i<=SMAX; i++)
		//a[i]=MAX;
	for (i=1; i<=n; ++i)  
        for (j=s-1; j>=1; --j)  
        {  
            if (v[j])  
                if (v[j]+val[i]>v[j+cost[i]])  
                    v[j+cost[i]]=v[j]+val[i];  
            if (val[i]>v[cost[i]])  
		            v[cost[i]]=val[i];  
        }
	for (i=s; v[i]<s; i++);
	printf("%d ",i);
}
int main()
{
	freopen("energii.in","r",stdin);
	freopen("energii.out","w",stdout);
	citirith();
	rezolvarith();

}