Pagini recente » Cod sursa (job #391109) | Cod sursa (job #1761647) | Cod sursa (job #221332) | Cod sursa (job #81302) | Cod sursa (job #895044)
Cod sursa(job #895044)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
int n,w,e[1001],c[1001],bst[10001];
void citire()
{
int i;
f>>n>>w;
for(i=1;i<=n;i++)
f>>e[i]>>c[i];
}
void init()
{
int i;
for(i=1;i<=2*w;i++)
bst[i]=-1;
}
int main()
{
int i,j,rasp=10000001;
citire();
init();
for(i=1;i<=n;i++)
{
for(j=w;j>0;j--)
{
if(bst[j]!=-1)
{
if(bst[j+e[i]]>bst[j]+c[i] || bst[j+e[i]]==-1)
bst[j+e[i]]=bst[j]+c[i];
if(j+e[i]>=w &&rasp>bst[j+e[i]])
rasp=bst[j+e[i]];
}
}
if(bst[e[i]]>c[i])
bst[e[i]]=c[i];
else
if(bst[e[i]]==-1)
bst[e[i]]=c[i];
if(e[i]>=w &&rasp>bst[e[i]])
rasp=bst[j+e[i]];
}
if(rasp==10000001)
g<<-1;
else
g<<rasp;
return 0;
}