Pagini recente » Cod sursa (job #600320) | Diferente pentru admin/task-ratings-guidelines intre reviziile 21 si 22 | Cod sursa (job #24178) | Cod sursa (job #1452035) | Cod sursa (job #3356207)
#include <fstream>
using namespace std;
ifstream cin("energii.in");
ofstream cout("energii.out");
struct ura
{
int w,c;
};
ura v[1001],s[15001];
int main()
{
int n,en,i,j,smax,mini=15000010,ver=1;
cin>>n>>en;
for(i=1;i<=n;i++)
cin>>v[i].w>>v[i].c;
for(i=1;i<=15000;i++)
s[i].c=20000000;
s[0].w=1;
smax=0;
for(i=1;i<=n;i++)
{
for(j=smax;j>=0;j--)
{
if(s[j].w==1)
{
s[j+v[i].w].w=1;
if(s[j].c+v[i].c<s[j+v[i].w].c)
s[j+v[i].w].c=s[j].c+v[i].c;
smax=j+v[i].w;
}
}
}
for(i=en;i<=en+10000;i++)
if(s[i].c<mini && s[i].w==1)
{
mini=s[i].c;
ver=0;
}
if(ver)
cout<<-1;
else
cout<<mini;
return 0;
}