Cod sursa(job #923717)

Utilizator Stefanescu_MihaiStefanescu Mihai-Nicolae Stefanescu_Mihai Data 23 martie 2013 19:57:21
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <fstream>
#include <bitset>
using namespace std;
short g,w,i,energie[1005],cost[1005],y;
unsigned int costminim[20005],s;
bitset <5005>posibil;
int main()
{
    ifstream f1("energii.in");
    ofstream f2("energii.out");
    f1>>g>>w;
    for (i=1;i<=g;++i)
        f1>>energie[i]>>cost[i];
    posibil[0]=1;
    for (i=1;i<20000;++i)             //dupa ce termin programul sa tratez si cazurile cand energia>w          //fa aia cu activat
    {
        costminim[i]=1000000000;
        for (y=1;y<=g;++y)
        {
            if ((energie[y]<=i)&&(posibil[i-energie[y]]))
            {
                s=cost[y]+costminim[i-energie[y]];
                if (s<costminim[i])
                {
                    costminim[i]=s;
                    posibil[i]=1;
                }
            }
        }
    }
    for (i=w+1;i<20000;++i)
        if (costminim[i]<costminim[w])
            costminim[w]=costminim[i];
    f2<<costminim[w]<<'\n';
    f1.close();
    f2.close();
    return 0;
}