Cod sursa(job #1427620)

Utilizator IoanZioan zahiu IoanZ Data 2 mai 2015 17:44:58
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <cstdio>

using namespace std;

int en[10000001];

int main()
{
    freopen("energii.in","r",stdin);
    freopen("energii.out","w",stdout);
    int g,w,i,j,e,c,rasp,dr;
    en[0]=0;
    scanf("%d%d",&g,&w);
    for (i=1;i<10000000;i++)
         en[i]=10000001;
    dr=0;
    rasp=10000001;
    for (i=0;i<g;i++){
         scanf("%d%d",&e,&c);
         for (j=dr;j>=0;j--)
             if (en[j]+c<en[j+e] && en[j]!=10000001){
                        en[j+e]=en[j]+c;
                        if (j+e>=w && rasp>en[j+e])
                            rasp=en[j+e];
             }
         if (dr<w)
             dr=dr+e;
    }
    if(rasp==10000001)
       rasp=-1;
    printf("%d",rasp);
    return 0;
}