Pagini recente » Cod sursa (job #324533) | Cod sursa (job #278565) | Cod sursa (job #672928) | Cod sursa (job #591545) | Cod sursa (job #494847)
Cod sursa(job #494847)
#include<fstream.h>
int n,p,v[5001],x,y,s1,s2,i,j;
int main()
{
ifstream f("energii.in");
ofstream g("energii.out");
f>>n;
f>>p;
s1=0;
s2=0;
for (i=1;i<=n;i++)
{
f>>x>>y;
s1=s1+x;
s2=s2+y;
if (v[x]==0) v[x]=y;
else
if (v[x]>y) v[x]=y;
}
v[s1]=s2;
if (s1<p) g<<-1;
else
{
if (p<=2501)
{
for (i=0;i<=p;i++)
if (v[i]!=0)
{
for (j=i+1;j<=p-i;j++)
{
if (i+j<5001)
if (v[i+j]>v[i]+v[j] && v[j]!=0)
v[i+j]=v[i]+v[j];
}
}
}
else
{
for (i=0;i<=2501;i++)
if (v[i]!=0)
{
for (j=i+1;j<=p-i;j++)
{
if (i+j<5001)
if (v[i+j]>v[i]+v[j])
v[i+j]=v[i]+v[j];
}
}
}
}
if (v[p]==0) g<<-1;
else
g<<v[p];
f.close();
g.close();
return 0;
}