Pagini recente » Cod sursa (job #1724022) | Cod sursa (job #21835) | Cod sursa (job #2262168) | Cod sursa (job #2968670) | Cod sursa (job #2395163)
#include <iostream>
#include <fstream>
using namespace std;
int G; //nr generatoare
int W; //cant min de energie
int E[1005]; //energia produsa de generatoru i
int C[1005]; //costu pornirii generatorului i
int d[100005]; //costul minim pentru puterea i
int main()
{
ifstream in ("energii.in");
ofstream out ("energii.out");
in>>G;
in>>W;
int minim = 1e9;
int cost_total = 0;
for(int i = 1; i <= G; ++i)
{
in>>E[i]>>C[i];
cost_total += C[i];
}
for(int i = 1; i <= 100000; ++i)
d[i] = -1;
for(int i = 1; i <= G; ++i)
for(int j = W; j >= 0; --j)
{
if(d[j + E[i]] > d[j] + C[i] || d[j + E[i]] == -1)
if(d[j] != -1)
d[j + E[i]] = d[j] + C[i];
}
for(int i = W; i <= 100000; i++)
if(d[i] != -1)
minim = min(minim, d[i]);
if(minim == 1e9)
out<<-1;
else
out<<minim;
return 0;
}