Cod sursa(job #1717189)

Utilizator andreiSevastreAndrei Sevastre andreiSevastre Data 14 iunie 2016 15:13:14
Problema Energii Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <iostream>
#include <stdlib.h>
#define N 20001
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]=N;
    }
     
    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 = N,k=1;       
	 
	for(int i=w;i<=N-1;i++)
	{
	   mini=minim(v[i], mini);
	}
	if(mini == N)
		{
		   printf("%d\n", -1);
		}
	else
		printf("%d\n", mini);
 
	return 0;
}