Pagini recente » Istoria paginii runda/aaaaaa/clasament | Istoria paginii runda/tema_1 | Istoria paginii runda/lot2003-2/clasament | Istoria paginii runda/boji_round9/clasament | Cod sursa (job #1054395)
#include <fstream>
using namespace std;
struct nod{int w,c;}v[100000];
ifstream f("energii.in");
ofstream g("energii.out");
long long S,W,a[5001];int n,i,j;
int main()
{f>>n>>W;
for(i=1;i<=n;i++)
f>>v[i].w>>v[i].c;
f.close();
a[0]=0; for(S=W;S>=1;S--) a[S]=-1;
for(i=1;i<=n;i++)
{
for(S=W;S>=1;S--)
if(a[S]!=-1)
{if(a[S-v[i].w]!=-1 && S-v[i].w>=0)
if(a[S-v[i].w]+v[i].c<a[S])
a[S]=a[S-v[i].w]+v[i].c;
}
else
if(a[S-v[i].w]!=-1 && S-v[i].w>=0)
a[S]=a[S-v[i].w]+v[i].c;
// g<<v[i].w<<' '<<v[i].c<<'\n';
// for(S=1;S<=W;S++) g<<a[S]<<' ';
//g<<'\n';
}
g<<a[W];
g.close();
return 0;
}