Pagini recente » Cod sursa (job #1595918) | Cod sursa (job #397255) | Cod sursa (job #2556259) | Cod sursa (job #1571328) | Cod sursa (job #2394448)
#include<fstream>
#include<algorithm>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
struct energie
{
int cantitate;
int cost;
double raport;
};
energie v[1005];
bool cmp(energie a, energie b)
{
if (a.raport == b.raport)
{
return 1;
}
if (a.raport > b.raport)
{
return 0;
}
return 1;
}
int main()
{
int nr_generatoare, cantitate_energie;
fin >> nr_generatoare;
fin >> cantitate_energie;
for (int i = 0; i < nr_generatoare; i++)
{
fin >> v[i].cantitate >> v[i].cost;
v[i].raport = (double)v[i].cost / v[i].cantitate;
}
sort(v, v + nr_generatoare, cmp);
int cnt = 0;
int ans = 0;
for(int i = 0; i < nr_generatoare; i++)
{
if (cnt >= nr_generatoare)
{
break;
}
if (cnt < nr_generatoare)
{
cnt = cnt + v[i].cantitate;
ans = ans + v[i].cost;
}
}
if (cnt < nr_generatoare)
{
fout << -1;
}
else
{
fout << ans;
}
fin.close();
fout.close();
return 0;
}