Pagini recente » Cod sursa (job #380191) | Cod sursa (job #1463401) | Cod sursa (job #1462018) | Cod sursa (job #435357) | Cod sursa (job #3348490)
#include <fstream>
#define GMAX 1009
#define WMAX 5009
#define INF (1<<30)
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int G,W,E[GMAX],C[GMAX],dp[2*WMAX+1];
void citire()
{
fin>>G>>W;
for(int i=1; i<=G; i++)
{
fin>>E[i]>>C[i];
}
}
int main()
{
citire();
for(int i=0; i<=2*W; i++)
{
dp[i]=INF;
}
dp[0]=0;
int ans=INF;
for(int i=1; i<=G; i++)
{
for(int j=2*W-E[i]; j>=0; j--)
{
if(dp[j]!=INF)
{
dp[j+E[i]]=min(dp[j+E[i]],dp[j]+C[i]);
if(j+E[i]>=W)
{
ans=min(ans,dp[j+E[i]]);
}
}
}
}
if(ans==INF)
{
ans=-1;
}
fout<< ans << "\n";
return 0;
}