Cod sursa(job #678029)

Utilizator PatrunjelFMIAnita Liviu Patrunjel Data 10 februarie 2012 21:57:19
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<fstream>
using namespace std;

ifstream fin("energii.in");
ofstream fout("energii.out");

int k,q,C[1001],E[1001],cost[5002],G,W;

void cit(){
    int i;
    fin>>G;
    fin>>W;
    for(i=0;i<G;i++){
        fin>>E[i]>>C[i];
        if(E[i]>W)  E[i]=W;
    }
    for(i=0;i<=W;i++)   cost[i]=32000;
}

void sel(){
    int i,j;
    for(i=0;i<G;i++){
        for(j=1;j<=W;j++)
            if(cost[j]!=32000){
                k=j+E[i];
                if(k>W) k=W;
                q=cost[j]+C[i];
                if(cost[k]>q)   cost[k]=q;
            }
        cost[E[i]]=C[i];
    }
}

int main(){
    cit();
    sel();
    if(cost[W]!=32000)  fout<<cost[W]<<endl;
    else    fout<<-1;

    return 0;
}