Cod sursa(job #184179)

Utilizator AndreyPAndrei Poenaru AndreyP Data 23 aprilie 2008 11:47:51
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.52 kb
#include<stdio.h>
int g,w,ws,v[1000010],e,c;
int main()
{
	freopen("energii.in","r",stdin);
	freopen("energii.out","w",stdout);
	int i,j;
	v[0]=1;
	scanf("%d%d",&g,&w);
	for(i=0; i<g ; i++)
	{
		scanf("%d%d",&e,&c);
		for(j=ws; j>=0; j--)
		{
			if(v[j])
			{
				
				if(v[j+e])
				{
					if(v[j+e]>v[j]+c)
						v[j+e]=v[j]+c;
				}
				else
					v[j+e]=v[j]+c;
				if(j+e>ws)
					ws=j+e;
				if(ws>w)
					ws=w;
			}
		}
	}
	for(i=w; i<1000001; i++)
	{
		if(v[i])
		{
			printf("%d\n",v[i]-1);
			return 0;
		}
	}
	return 0;
}