Pagini recente » Cod sursa (job #2956896) | Cod sursa (job #1355179) | Cod sursa (job #1411167) | Cod sursa (job #2538185) | Cod sursa (job #540760)
Cod sursa(job #540760)
#include<fstream>
using namespace std;
int i,j,n,m,b[50025],w,uz[1010][5025],k;
struct rez
{
int e,c;
};
rez a[10010];
int main()
{
ifstream f("energii.in");
ofstream g("energii.out");
f>>n>>w;
for(i=1;i<=n;i++)
f>>a[i].e>>a[i].c;
b[0]=0;
for(i=1;i<=w;i++)
b[i]=100000;
for(i=1;i<=w;i++)
{
for(j=1;j<=n;j++)
if(i<a[j].e)
{
if(b[i]>a[j].c)
b[i]=a[j].c,m=j;
}
else
if(i>=a[j].e)
{
if(b[i-a[j].e]!=100000&&b[i]>b[i-a[j].e]+a[j].c&&!uz[i-a[j].e][j])
b[i]=b[i-a[j].e]+a[j].c,m=j;
}
uz[i][m]=1;
}
//for(i=1;i<=w;i++)
//g<<i<<" "<<b[i]<<"\n";
//g<<"\n";
if(b[w]==100000)
g<<-1;
else
g<<b[w];
return 0;
}