Cod sursa(job #1674102)

Utilizator CodrutLemeniCodrut Lemeni CodrutLemeni Data 4 aprilie 2016 13:18:00
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <iostream>
#include <stdio.h>
#define Pretmax 100000000

using namespace std;

int p[5010];

int main(){
    int i,j,pow,ener,pret,nrgen;


    freopen("energii.in","r",stdin);
    freopen("energii.out","w",stdout);

    scanf("%d%d",&nrgen,&pow);

    for(i=1;i<=pow;i++){
        p[i]=Pretmax;
    }

    for(i=0;i<nrgen;i++){
        scanf("%d%d",&ener,&pret);
        if(ener>=pow){
            if(pret<p[pow]){
                p[pow]=pret;
            }
            continue;
        }
        for(j=pow;j>=0;j--){
            if(j<=ener){
                p[j]=min(p[j],pret);
            }else{
                p[j]=min(p[j-ener]+pret,p[j]);
            }
        }
    }

    if(p[pow]==Pretmax){
        printf("-1");
        return 0;
    }

    printf("%d",p[pow]);

    return 0;
}