Cod sursa(job #894527)

Utilizator miron_dorin95Miron Dorin miron_dorin95 Data 26 februarie 2013 21:49:00
Problema Energii Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
int n,w,e[1001],c[1001],bst[10001];
void citire()
{
    int i;
    f>>n>>w;
    for(i=1;i<=n;i++)
        f>>e[i]>>c[i];
}
int main()
{
    int i,j,rasp=10001;
    citire();
    for(i=1;i<=n;i++)
    {
        for(j=w;j>0;j--)
        {
            if(bst[j])
            {
                bst[j+e[i]]=bst[j]+c[i];
                if(j+e[i]>=w &&rasp>bst[j+e[i]])
                    rasp=bst[j+e[i]];
            }
        }
        if(bst[e[i]]>c[i])
            bst[e[i]]=c[i];
        else
            if(bst[e[i]]==0)
                bst[e[i]]=c[i];
        if(e[i]>=w &&rasp>bst[e[i]])
            rasp=bst[j+e[i]];
    }
    if(rasp==10001)
        g<<-1;
    else
        g<<rasp;
    return 0;
}