Cod sursa(job #1788134)

Utilizator Mircea_DonciuDonciu Mircea Mircea_Donciu Data 25 octombrie 2016 18:33:02
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <fstream>

using namespace std;
int n,x,k,i,j,y,w[5005],p[5005],m[3][100005];
int main()
{
    ifstream f("energii.in");
    ofstream g("energii.out");
    f>>n>>x;
    for(i=0; i<=x; i++)
        f>>w[i]>>p[i];
    for(i=0; i<=x; i++)
    {
        m[1][i]=10010;
        m[2][i]=10010;
    }
    for(i=0; i<n; i++)
    {
        for(j=x; j>=0; j--)
            if(w[i]<j)
                m[2][j]=min(m[1][j],m[1][j-w[i]]+p[i]);
                else m[2][j]=min(m[1][j],p[i]);
        for(y=x; y>=0; y--)
        m[1][y]=m[2][y];
    }
    if(m[1][x]!=10010)
        g<<m[1][x]<<'\n';
    else g<<"-1"<<'\n';
    f.close(); g.close();
    return 0;
}