Cod sursa(job #1599817)

Utilizator Bodo171Bogdan Pop Bodo171 Data 14 februarie 2016 14:03:23
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <iostream>
#include<fstream>
#define sup (1<<30)
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
int n,necesar,e[1005],cost[1005],optim[5005],minim,i,j,s,maxe;
int main()
{
 f>>n;
 f>>necesar;
 minim=sup;
 for( i=1;i<=n;i++) {f>>e[i]>>cost[i];s+=e[i];if(e[i]>maxe) maxe=e[i];}
 if(s<necesar) g<<-1;
 else
 {
     for(i=1;i<=n;i++)
        for(j=necesar+e[i]-1;j>=0;j--)
     {
         if(-optim[j+e[i]]<-optim[j]+cost[i]) optim[j+e[i]]=optim[j]+cost[i];
     }
     for(j=necesar+maxe-1;j>=necesar;j--) if(optim[j]<minim) minim=optim[j];
     g<<minim;
 }
 return 0;
}