Pagini recente » Cod sursa (job #2862136) | Cod sursa (job #2332719) | Cod sursa (job #86740) | Cod sursa (job #2393952) | Cod sursa (job #2045113)
#include <fstream>
using namespace std;
ifstream f ("energii.in");
ofstream g ("energii.out");
int n,k,c[1001],e[1001],b[5001],t[5001],i,j,s,a;
int main()
{
f>>n>>k;
for(i=1;i<=n;++i)
f>>e[i]>>c[i];
for(i=1;i<=n;++i)
for(j=2;j<=n;++j)
if(e[j]<e[j-1])
{
swap(e[j],e[j-1]);
swap(c[j],c[j-1]);
}
for(i=n;i>=1&&b[k]==0;--i)
{
b[e[i]]=1;
t[e[i]]=c[i];
for(j=1;j<=k-e[i];++j)
{
if(b[j]&&(b[j+e[i]]==0||b[j+e[i]]>b[j]+1))
{
b[j+e[i]]=b[j]+1;
t[j+e[i]]=c[i];
}
}
}
s=0;
a=k;
while(a>0)
{
s=s+t[a];
a=a-t[a];
}
if(s<k)
g<<-1;
else
g<<s;
return 0;
}