Cod sursa(job #424090)

Utilizator laurenttlaurentiu pavel laurentt Data 24 martie 2010 16:21:26
Problema Energii Scor 85
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<stdio.h>
#include<algorithm>
using namespace std;

int n,a[110000],g,w,minim=999999;



void rez(int e, int c)
{
	int i;
	
	for(i=w; i>=0; --i)
	{
		if(a[i])
		{
			if(!a[i+e])
				a[i+e]=c+a[i];
			else
				a[i+e]=min(a[i+e],a[i]+c);
			if(i+e>=w)
				minim=min(minim,a[i+e]);
		}
		if(i==0)
		{
			if(a[e]==0)
				a[e]=c;
			else
				a[e]=min(a[e],c);
			if(i+e>=w)
				minim=min(minim,a[e]);
		}
	}
}

void afis()
{
	printf("%d",minim);
}


void cit()
{
	scanf("%d %d",&g, &w);
	int i,e,c;
	for(i=1; i<=g; i++)
	{
		scanf("%d %d",&e,&c);
		rez(e,c);
	}
}

int main()
{
	freopen("energii.in","r",stdin);
	freopen("energii.out","w",stdout);
	
	
	cit();
	afis();
	return 0;
}