Pagini recente » Cod sursa (job #715653) | Cod sursa (job #2551382) | Cod sursa (job #280827) | Cod sursa (job #125997) | Cod sursa (job #849330)
Cod sursa(job #849330)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
short eg[5000],cg[5000];
short min(short a, short b)
{
if(a>b)
return b;
else
return a;
}
/*short f(short i,short w)
{
if(i==1)
{
if(w - eg[0] > 0)
return 10001;
else
return cg[0];
}
else
{
if(w <= 0){
return 0;
}
if(w - eg[i-1] <= 0){
return cg[i-1];
}
short s1=f(i-1,w-eg[i-1]);
short s2=f(i-1,w);
if(s1 == 10001){
return s2;
}
s1+=cg[i-1];
if(s2 == 10001){
return s1;
}
cout << i <<" g -> " << w << " " << s1 << " " << s2<<endl;
return min(s1,s2);
}
}
*/
int main ()
{
short g,w,a[1001][502],i,j;
fin>>g>>w;
for(i=1;i<=g;i++){
fin>>eg[i]>>cg[i];
}
for(i=0;i<g;i++)
{
for(j=1;j<=w;j++)
{
a[i][j]=10001;
}
}
for(i=1;i<=g;i++)
{
for(j=0;j<=w;j++)
{
if(eg[i]<=j)
{
a[i][j]=min(a[i-1][j],a[i-1][j-eg[i]]+cg[i]);
}
else
a[i][j]=min(a[i-1][j],cg[i]);
}
}
if(a[g][w]==10001)
fout<<-1;
else
fout<<a[g][w];
}