Pagini recente » Cod sursa (job #216141) | Cod sursa (job #2981816) | Cod sursa (job #39408) | Cod sursa (job #1443077) | Cod sursa (job #290)
Cod sursa(job #290)
#include<iomanip.h>
#include<fstream.h>
ifstream fin("energii.in");
ofstream fout("energii.out");
long c[1001] , e[1001];
#define INF 6000000
long a[1001][5001] , i , j ,w,g;
int main()
{
fin>>g;
fin>>w;
for (i = 1 ; i<= g ; i++)
fin>> e[i]>>c[i];
for (i = 1 ; i<= w;i++)
{
if(i <= e[1])
{
a[1][i] = c[1];
}
}
for (i = 1 ; i<= g;i++)
{
for (j = 1 ; j<= w ; j++)
{
if (!a[i][j]) a[i][j] = INF;
}
}
for (i = 2 ; i<= g ; i++)
{
for (j = 1 ; j<= w;j++)
{
if (j<= e[i])
{
if (a[i-1][j] < c[i])
a[i][j] = a[i-1][j];
else
a[i][j] = c[i];
}
else
{
if ( (j-e[i]>=1)&&a[i-1][j] > c[i] + a[i-1][j-e[i]] )
a[i][j] = c[i] + a[i-1][j-e[i]];
else
a[i][j] = a[i-1][j];
}
}
}
if (a[g][w]==INF)
fout<<-1;
else
fout<<a[g][w];
return 0;
}