Pagini recente » Cod sursa (job #523911) | Cod sursa (job #2557286) | Cod sursa (job #914805) | Cod sursa (job #33806) | Cod sursa (job #1480335)
#include <iostream>
#include <fstream>
#include <algorithm>
#define inf 500000000
#define lim 15000
using namespace std;
fstream fin("energii.in",ios::in);
fstream fout("energii.out",ios::out);
int N,W,*e,*c,s,sol = inf,v[lim];
void citire(){
fin >> N;
e = new int[N+1];
c = new int[N+1];
fin >> W;
for(int i=1;i<=N;i++)
{
fin >> e[i] >> c[i];
s = max(s,e[i]);
}
for(int i=1;i<=s+W;i++)
v[i] = inf;
}
void rezolv()
{
for(int i=1;i<=N;i++)
{
for(int j=W+e[i];j>=e[i];j--)
{
v[j] = min(v[j],v[j-e[i]]+c[i]);
if( j>= W)
sol = min(sol,v[j]);
}
}
}
int main()
{
citire();
rezolv();
if(sol == inf)
fout << "-1";
else fout << sol;
return 0;
}