Cod sursa(job #881920)

Utilizator mlupseLupse-Turpan Mircea mlupse Data 18 februarie 2013 19:14:29
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <fstream>
#define WMAx 5100
#define min(a,b) ((a)<(b)?(a):(b))
using namespace std;

int N,W,Sol,A[2*WMAx];

int main() {

    int i,j,energie,cost;
    ifstream in("energii.in");
    ofstream out("energii.out");

    in>>N>>W;

    for(i=1,A[0]=1;i<=N;i++) {

        in>>energie>>cost;

        for(j=WMAx;j>=0;j--)
            if(A[j])
                if(!A[j+energie]||A[j+energie]>A[j]+cost)
                    A[j+energie]=A[j]+cost;

        }

    for(i=W,Sol=2*WMAx;i<2*WMAx;i++)
        if(A[i])
            Sol=min(Sol,A[i]);

    if(Sol==2*WMAx)
        Sol=0;

    out<<(Sol-1)<<'\n';

    in.close();
    out.close();

    return 0;

}