Cod sursa(job #1573373)

Utilizator Daria09Florea Daria Daria09 Data 19 ianuarie 2016 17:32:51
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
int s[10001],c[1001],p[1001],n,d,rez=-1;
void citire()
{
    f>>n>>d; int i;
    for(i=1;i<=n;i++)
        f>>p[i]>>c[i];
    f.close();
}
void dinamica()
{
    int max1=0,j,i;
    for(i=1;i<=10000;i++)s[i]=-1;
    for(i=1;i<=n;i++)
        for(j=max1;j>=0;j--)
        if((s[p[i]+j]>s[j]+c[i]&&s[j]!=-1)||(s[p[i]+j]==-1&&s[j]!=-1))
        {
            s[p[i]+j]=s[j]+c[i];
            if(max1<p[i]+j)max1=p[i]+j;
            if(p[i]+j>=d)
                if(rez==-1||rez>s[p[i]+j])
                rez=s[p[i]+j];
        }
    g<<rez; cout<<s[7];
}
int main()
{
    citire();
    dinamica();
    return 0;
}