Pagini recente » Cod sursa (job #1851021) | Cod sursa (job #875186) | Cod sursa (job #1671130) | Cod sursa (job #1667210) | Cod sursa (job #469552)
Cod sursa(job #469552)
# include <fstream>
# define MAX 1000000000
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];
}
if (c)
{
u[i][c]=1;
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;
}