Cod sursa(job #516285)

Utilizator devilrom16Lupu Alexandru Gabriel devilrom16 Data 23 decembrie 2010 17:35:29
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>
#define inf 20000000
#define wmax 5001
#define gmax 1001
 
using namespace std;
int v[wmax],cg[gmax],eg[gmax],i,j,g,w;
 
int main() {
    ifstream f("energii.in");
    ofstream q("energii.out");
    f>>g>>w;
    for (i=1; i<=g; i++)
        f>>eg[i]>>cg[i];
    for (i=1; i<=w; i++)
        v[i]=inf;
    for (i=1; i<=g; i++)
        for(j=w-1; j>=0; j--)
            if (v[j]!=inf) {
                if (eg[i]+j>w) 
				{
                    if (cg[i]+v[j]<v[w])
                        v[w]=cg[i]+v[j];
                }
                else 
				{
                    if (v[j+eg[i]]>cg[i]+v[j])
                        v[j+eg[i]]=cg[i]+v[j];
                }
            }
    if (v[w]==inf)
        q<<-1;
    else
    q<<v[w];
    return 0;
}