Cod sursa(job #1293210)

Utilizator adnionutCojocaru Ionut adnionut Data 15 decembrie 2014 16:24:35
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.06 kb
#include<fstream>
using namespace std;
 
ifstream  fin("energii.in");
ofstream fout("energii.out");
struct per
{
    int e,c;
};
int v[5002];
int G, W;
per x[1005],aux;
 
int main()
{
    int i, j, p;
    fin>>G>>W;
    for(i=1;i<=G;i++)
    {
        fin>>x[i].e>>x[i].c;
    }
/*
    for(i=1;i<=G;i++)
    {
        for(j=i+1;j<=G;j++)
        {
            if(x[i].e<x[j].e)
            {
                aux=x[i];
                x[i]=x[j];
                x[j]=aux;
            }
        }
    }
*/
    for(i=1;i<=W;i++)
    {
        v[i]=1000000000;
    }
    v[0]=0;
 
    for(i=1;i<=G;i++)
    {
        for(j=W;j>=0;j--)
        {
            if(v[j]<1000000000)
            {
                p=x[i].e+j;
                if(p>W)p=W;
                if(v[j]+x[i].c<v[p])
                {
                    v[p]=v[j]+x[i].c;
                }
            }
        }
    }
    if(v[W]==1000000000)
    {
        fout<<-1;
    }
    else
    {
        fout<<v[W];
    }
 
    fout.close();
    return 0;
}