Pagini recente » Cod sursa (job #2593157) | Cod sursa (job #1259559) | Cod sursa (job #2956404) | Cod sursa (job #2861766) | Cod sursa (job #1099286)
#include <fstream>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int ener[20001], cost[20001], C[20001][20001],G,W;
int main()
{ int i,j,k;
int inf=2000000000;
fin>>G>>W;
for(i=1;i<=G;i++) fin>>ener[i]>>cost[i];
for(i=0;i<=G;i++)
for(j=0;j<=W;j++) C[i][j]=inf;
for(i=1;i<=G;i++)
for(j=1;j<=W;j++)
if (ener[i]>=j) // energia motorului este mai mare decat am nevoie - vad daca este cazul sa-l deschid
C[i][j]=min(cost[i],C[i-1][j]);
else C[i][j]=min(cost[i]+C[i-1][j-ener[i]],C[i-1][j]);
if (C[G][W]==inf) fout<<-1;
else fout<<C[G][W];
fin.close();
fout.close();
return 0;
}