Pagini recente » Cod sursa (job #635847) | Cod sursa (job #1143125) | Cod sursa (job #1060426) | Cod sursa (job #197729) | Cod sursa (job #1599817)
#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;
}