Cod sursa(job #884815)

Utilizator GManiakGhenea Catalin GManiak Data 21 februarie 2013 12:51:07
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("energii.in");
ofstream h("energii.out");
struct nod
{
    int e;
    int c;
}v[1000];
int w,cost[10000],g,s;
void rucsac()
{
    int i,j;
    for(i=0;i<g;i++)
    {
        for(j=w-1;j>0;j--)
            if(cost[j]!=0)
                if(cost[j]+v[i].c<cost[j+v[i].e] || cost[j+v[i].e]==0)
                    cost[j+v[i].e]=cost[j]+v[i].c;
        if(cost[v[i].e]>v[i].c || cost[v[i].e]==0)
            cost[v[i].e]=v[i].c;
    }
}
void afis()
{
    int i,min=10001;
    for(i=w;i<=s;i++)
        if(min>cost[i] && cost[i]!=0)
            min=cost[i];
    h<<min;
}
int main()
{
    int i;
    f>>g>>w;
    for(i=0;i<g;i++)
    {
        f>>v[i].e>>v[i].c;
        s+=v[i].e;
    }
    if(s<w)
     {
         h<<-1;
         return 0;
     }
    rucsac();
    afis();
    return 0;
}