Pagini recente » Cod sursa (job #2972595) | Cod sursa (job #462586) | Cod sursa (job #2962140) | Cod sursa (job #2506511) | Cod sursa (job #469551)
Cod sursa(job #469551)
# include <fstream>
# define MAX 2000000000
using namespace std;
int n, w, E[1003], C[1003], u[5003][1003], v[5003];
void read ()
{
ifstream fin ("energii.in");
fin>>n>>w;
for(int i=1;i<=n;++i)
fin>>E[i]>>C[i];
}
void solve ()
{
int c;
for(int i=1;i<=w;++i)
v[i]=MAX;
for(int i=1;i<=w;++i)
{
c=0;
for(int j=1;j<=n;++j)
if (i-E[j]>=0 && !u[i-E[j]][j] && v[i-E[j]]+C[j]<v[i])
{
c=j;
v[i]=v[i-E[j]]+C[j];
u[i][j]=1;
}
if (c)
for(int k=1;k<=n;++k)
u[i][k]=u[i-E[c]][k];
}
}
int main()
{
read ();
solve ();
ofstream fout ("energii.out");
if (v[w]==MAX)
fout<<"-1";
else
fout<<v[w];
return 0;
}