Cod sursa(job #1714879)

Utilizator andreiSevastreAndrei Sevastre andreiSevastre Data 9 iunie 2016 16:51:58
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <iostream>
#include <stdlib.h>
#define N 17001
using namespace std;

int v[N];

int minim (int a, int b)
{
	return a<b? a:b;
}

int main ()
{
	int g,w,eg,cg;
	
	for(int i=1;i<N;i++)
	{
		v[i]=17000;
	}
	
	freopen ("energii.in" , "r", stdin);
	freopen ("energii.out", "w", stdout);
	
	
	scanf("%d %d", &g, &w);
	
	for(int i=1;i<=g;i++)
	{
		scanf("%d %d", &eg, &cg);
		
		for(int j=w;j>=1;j--)
		{
			if(v[j]!=0)
			{
				v[j+eg]=minim(v[j+eg], v[j]+cg);
			}
		}
		v[eg]=minim(v[eg],cg);
	}
		int mini,k=1;		
		
		for(int i=w;i<=N-1;i++)
		{
		   mini=minim(v[i], v[w]);
		}
		if(v[w] == 17000)
		    {
			   printf("%d\n", -1);
		    }
		else 
			printf("%d\n", mini);
	
		return 0;
	}