Cod sursa(job #971083)

Utilizator tannous.marcTannous Marc tannous.marc Data 8 iulie 2013 15:19:19
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb

#include <fstream>
#include <stdio.h>
using namespace std;
int min(int a,int b){
    return a>b ? b:a;
    }
int max(int a,int b){
    return a>b ? a:b;
    }
int G,W,EG,CG,DG,d[1000][1000];
int main(){
    ifstream in("energii.in");
    ofstream out("energii.out");
    in>>G>>W;
        for(int i=0;i<=G;i++)
            for(int j=0;j<=W;j++)
                d[i][j]=10001;
        for(int i=1;i<=G;i++){
            in>>EG>>CG;
                for(int j=0;j<=W;j++)
        {
                d[i][j] = d[i-1][j];

                if(j >= EG)
                    d[i][j] = min(d[i][j], CG + d[i-1][j - EG]);
                else
                    d[i][j] = min(d[i][j], CG);

        }
    }

    if(d[G][W] != 10001)
        out<<d[G][W]<<"\n";
    else
        out<<"-1\n";

    return 0;

}