Cod sursa(job #1464382)

Utilizator bogoismarandaBogoi Smaranda bogoismaranda Data 23 iulie 2015 12:20:44
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>
using namespace std;
int d[1002];
int main()
{
    ifstream fin("energii.in");
    ofstream fout("energii.out");
    int n,G,g,p,smin,i,j,m,s;
    fin>>n>>G;
    smin=2000000000;
    s=0;
    for(i=1;i<=1001;i++)
        d[i]=-1;
    for(i=1;i<=n;i++)
    {
        fin>>g>>p;
        for(j=s;j>=0;j--)
        if(d[j]!=-1 && j+g>=G)
        {
            if(d[j]+p<smin)
                {
                        smin=d[j]+p;
                        d[j+g]=smin;
                    }
            else
                {

                    if(d[j]+p<d[j+g])
                        d[j+g]=d[j]+p;
                }
            }
        if(s<G)
            s=s+g;
        }
    if(smin==2000000000)
        fout<<-1;
    else
        fout<<smin;

    return 0;
}