Pagini recente » Rating Racovita Dennis Gabriel (Rako) | Cod sursa (job #1288353) | Cod sursa (job #3196885) | Cod sursa (job #720367) | Cod sursa (job #4380)
Cod sursa(job #4380)
#include <fstream>
using namespace std;
const int MaxN = 1001, MaxS = 5001;
int N, S, v[MaxN], cost[MaxN];
int c[MaxS];
int Minim = 999999999;
void ReadData(void)
{
ifstream fin("energii.in");
fin >> N >> S;
for (int k=1; k<=N; ++k)
fin >> v[k] >> cost[k];
fin.close();
}
int main(void)
{
int i, j, k;
ReadData();
for (j=1; j<=S; ++j) c[j] = 1e9;
c[0] = 0;
for (i=1; i<=N; ++i)
for (j=S; j>=0; --j)
if (c[j] < 1e9)
{
if (j + v[i] > S)
if (Minim > c[j] + cost[i])
Minim = c[j] + cost[i];
if (j + v[i] <= S)
if (c[j + v[i]] > c[j] + cost[i])
c[j + v[i]] = c[j] + cost[i];
}
ofstream fout("energii.out");
if (c[S] == 1e9 && Minim == 999999999)
fout << -1;
else
fout << (Minim < c[S] ? Minim : (c[S] == -1 ? Minim : c[S]));
fout.close();
return 0;
}