Cod sursa(job #1330115)

Utilizator GooggaIoana Iaru Googga Data 30 ianuarie 2015 13:29:10
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb

#include <fstream>
#define maxim 0x3f3f3f3f
#define max 10002

using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");

int g,w,cmin;
    int e[max],c[max],cost[max/2];
int main() {
    in>>g>>w;
    for(int i=1;i<=g;i++)
        in>>e[i]>>c[i];
    
    for(int i=1;i<=w;i++)
        cost[i]=maxim;
    
    for(int i=1;i<=g;i++)
       for(int j=w;j>=0;--j) 
           if(j>=e[i])
           {
               if(cost[j] > cost[j-e[i]]+c[i])
                   cost[j]=cost[j-e[i]]+c[i];}
               else
                   cost[j]=min(cost[j],c[i]);
           
    if(cost[w]!=maxim)
        out<<cost[w];
    else
        out<<-1;
    in.close();
    out.close();
    return 0;
}