Pagini recente » Cod sursa (job #2826421) | Cod sursa (job #2374554) | Cod sursa (job #229448) | Cod sursa (job #2724153) | Cod sursa (job #2394682)
#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[1005][1005]; //d[i][j] = energia produsa de minim i generatoare cu costul maxim j
int main()
{
ifstream in ("energii.in");
ofstream out ("energii.out");
in>>G;
in>>W;
int cost_total = 0;
for(int i = 1; i <= G; ++i)
{
in>>E[i]>>C[i];
cost_total += C[i];
}
for(int i = 2; i <= G; ++i)
for(int j = 0; j <= cost_total; ++j)
{
d[i][j] = max(d[i - 1][j], d[i][j - C[i]] + E[i]);
if(d[i][j] >= W)
{
out<<j;
return 0;
}
}
out<<"-1";
return 0;
}