Pagini recente » Cod sursa (job #1595653) | Cod sursa (job #2392276) | Cod sursa (job #2064285) | Cod sursa (job #1465931) | Cod sursa (job #628677)
Cod sursa(job #628677)
#include<fstream>
using namespace std;
long v[10001],C[1001],E[1001];
int main()
{
int x,y,i,j;
long sum=0;
ifstream f("energii.in");
ofstream g("energii.out");
f>>x>>y;
for(i=1;i<=x;i++)
{
f>>E[i];
f>>C[i];
sum+=E[i];
}
for(i=1;i<=10000;i++)
v[i]=-1;
f.close();
if(sum<y)
{
g<<-1;
return 0;
}
for(i=1;i<=x;i++)
for(j=y;j>=0;j--)
if((v[j]!=-1 ||j==0)&& v[j+E[i]]==-1)
{
if(j==0) v[j+E[i]]+=1;
v[j+E[i]]=C[i]+v[j];
}
else
if((v[j]!=-1 ||j==0)&& v[j+E[i]]!=-1 && v[j+E[i]]>C[i]+v[j])
{
if(j==0) v[j+E[i]]+=1;
v[j+E[i]]=C[i]+v[j];
}
long minim;
i=y;
while(v[i]==-1) i++;
minim=v[i];
for(j=i+1;j<10001;j++)
if(v[j]<minim&&v[j]!=-1)
minim=v[j];
g<<minim;
return 0;
}