Pagini recente » Cod sursa (job #2421057) | Cod sursa (job #3175531) | Cod sursa (job #1824811) | Cod sursa (job #3180583) | Cod sursa (job #540730)
Cod sursa(job #540730)
#include<fstream>
using namespace std;
int i,j,n,m,b[5002],w,uz[1003][5002],k;
struct rez
{
int e,c;
};
rez a[1003];
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<<b[i]<<" ";
g<<"\n";*/
if(b[w]<w||b[w]==100000)
g<<-1;
else
g<<b[w];
return 0;
}