Pagini recente » Cod sursa (job #3215867) | Cod sursa (job #554570) | Cod sursa (job #1361855) | Cod sursa (job #702073) | Cod sursa (job #1376065)
#include <stdio.h>
#include <algorithm>
using namespace std;
struct generator {
int energie;
int cost;
float raport;
};
generator generatoare[10001];
int vec[1000001];
bool cmp(generator a, generator b) { return a.energie > b.energie; }
int main()
{
freopen("energii.in", "r", stdin);
freopen("energii.out", "w", stdout);
int g, w, i, energie_maxima = 0, cost_minim = 0, energie_minima = 0;
scanf("%d%d", &g, &w);
int j;
for(i = 1; i <= g; i++)
{
scanf("%d%d", &generatoare[i].energie, &generatoare[i].cost);
energie_maxima += generatoare[i].energie;
}
if( energie_maxima < w ) { printf("%d\n",-1); return 0; }
else {
//sort(generatoare, generatoare + g, cmp);
for( i = 1; i <= g; i++ )
{
for(j=1000000; j>=1; j--) {
if(vec[j] != 0)
vec[ j + generatoare[i].energie ] += generatoare[i].cost;}
vec[ generatoare[i].energie ] += generatoare[i].cost;
}
for(i=1; i<=10000; i++) printf("%d ", vec[i]);
}
}