Cod sursa(job #312015)

Utilizator Magnuscont cu nume gresit sau fals Magnus Data 4 mai 2009 21:46:06
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<iostream>   
#include<stdio.h>   
#include<vector>   
#include<algorithm>   
#define MAX 1005*5005   
using namespace std;   
int g,w,i,j,cant,cost,MIN=MAX;   
vector <int> sol;   
int main()   
{   
    freopen("energii.in","r",stdin);   
    freopen("energii.out","w",stdout);   
    scanf("%d%d",&g,&w);   
    sol.resize(w+10001,MAX);sol[0]=0;   
    for(i=0;i<g;i++)   
    {   
        scanf("%d%d",&cant,&cost);   
        for(j=w;j>=0;j--)   
            if(sol[j]!=MAX)   
                sol[j+cant]=min(sol[j]+cost,sol[j+cant]);   
    }   
    MIN=*min_element(sol.begin()+w-1,sol.end());   
    MIN=MIN==MAX?-1:MIN;   
    printf("%d\n",MIN);   
    return 0;   
}