Pagini recente » Cod sursa (job #2058515) | Cod sursa (job #989621) | Cod sursa (job #525960) | Cod sursa (job #355748) | Cod sursa (job #801124)
Cod sursa(job #801124)
#include <fstream>
using namespace std;
ifstream f("energii.in");
ofstream fout("energii.out");
int n,g,e[50005],c[50005],maxg,v[100005];
inline int minim(int a,int b)
{
if(a && !b)
return a;
if(!a && b)
return b;
if(a<b)
return a;
else
return b;
}
int main()
{
f>>n>>g;
int i;
for(i=1;i<=n;i++)
f>>e[i]>>c[i];
for(i=1;i<=n;i++)
{
for(int j=1;j<=maxg;j++)
if(v[j])
v[j+e[i]]=minim(v[j+e[i]],v[j]+c[i]);
maxg+=e[i];
v[e[i]]=minim(c[i],v[e[i]]);
}
if(maxg<g)
fout<<-1<<'\n';
else
{
int rez=999999999;
for(i=g;i<=maxg;i++)
if(rez>v[i] && v[i])
rez=v[i];
fout<<rez<<'\n';
}
f.close();
fout.close();
return 0;
}