Pagini recente » Cod sursa (job #1672509) | Cod sursa (job #488838) | Cod sursa (job #2452359) | Cod sursa (job #147476) | Cod sursa (job #1375838)
#include <stdio.h>
#include <algorithm>
using namespace std;
struct generator {
int energie;
int cost;
float raport;
};
bool cmp(generator a, generator b)
{
return a.raport > b.raport;
}
generator generatoare[10001];
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);
for(i = 0; i < g; i++)
{
scanf("%d%d", &generatoare[i].energie, &generatoare[i].cost);
generatoare[i].raport = (float)generatoare[i].energie / (float)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 = 0; i < g; i++ )
{
if( energie_minima + generatoare[i].energie <= w )
{
energie_minima += generatoare[i].energie;
cost_minim += generatoare[i].cost;
}
}
printf("%d\n", cost_minim);
// }
}