Pagini recente » Cod sursa (job #3142800) | Cod sursa (job #1012603)
# include <fstream>
using namespace std;
# define inf 3000000
ifstream fin("energii.in");
ofstream fout("energii.out");
int n,Wt,E[1001],C[1001],Ct[5001],Min=inf;
int main()
{
int i,j;
fin>>n>>Wt;
for (i=1;i<=n;++i)
fin>>E[i]>>C[i];
//initializam costul minim
for (i=1;i<=Wt;++i)
Ct[i]=inf;
// Ct[j] = costul minim necesar pentru a da o energie >=j, folosind primele i generatoare
Ct[0]=0;
for (i=1;i<=n;++i)
{
for (j=Wt; j>=0; --j)
if (Ct[j] != inf)
{
if (j + E[i] > Wt)
{
if (Ct[Wt] > Ct[j] + C[i])
Ct[Wt] = Ct[j] + C[i];
}
else
if (Ct[j + E[i]] > Ct[j] + C[i])
Ct[j + E[i]] = Ct[j] + C[i];
}
}
if (Ct[Wt]==inf) fout<<"-1\n";
else fout<<Ct[Wt]<<"\n";
return 0;
}