Cod sursa(job #1778053)

Utilizator maria15Maria Dinca maria15 Data 13 octombrie 2016 12:50:46
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <fstream>
#define e first
#define p second

using namespace std;

short int G, W, i, j;
int P[10000001], sol, lim, s;
pair <short int, short int> v[1001];

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

int main(){
    fin>>G>>W;
    for(i=1;i<=G;i++){
        fin>>v[i].e>>v[i].p;
    }
    for(i=1;i<=10000;i++)
        P[i]=10000100;
    P[0]=0;
    sol=10000100;
    lim=W;
    for(i=1;i<=G;i++)
        for(j=W;j>=0;j--)
            if(P[j]!=10000100){
                if(j+v[i].e>=W)
                    P[W]=min(P[W], P[j]+v[i].p);
                else
                P[j+v[i].e] = min(P[j]+v[i].p, P[j+v[i].e]);
                /* if(j+v[i].e>=W) {
                    if(sol>P[j+v[i].e])
                        sol=P[j+v[i].e];
                } */
            }
    if(P[W]==10000100)
        fout<<"-1";
    else
        fout<<P[W];
    return 0;
}