Pagini recente » IAP #2: Concurs pentru studenti | Cod sursa (job #49554) | Cod sursa (job #539077) | Cod sursa (job #3212530) | Cod sursa (job #2224991)
#include <iostream>
#include <fstream>
#include <climits>
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
int nr_generatoare;
int necesar;
pair <int,int> generator[1010];
int dp[10005];
void dinamica()
{
for (int i=1; i<=10003; i++)
{
dp[i]=999999;
}
for (int i=1; i<=nr_generatoare; i++)
{
for (int j=necesar; j>0; j--)
{
if (j-generator[i].first<0)
break;
dp[j]=min(dp[j],dp[j-generator[i].first]+generator[i].second);
}
}
if (dp[necesar]==999999)
g << -1;
else
g << dp[necesar];
}
int main()
{
f >> nr_generatoare;
f >> necesar;
for (int i=1; i<=nr_generatoare; i++)
{
f >> generator[i].first >> generator[i].second;
if (generator[i].first>necesar)
generator[i].first=necesar;
}
dinamica();
return 0;
}