Pagini recente » Cod sursa (job #1502159) | Cod sursa (job #960756) | Cod sursa (job #653562) | Cod sursa (job #1655801) | Cod sursa (job #2063172)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
int numar_gen, cant_rep;
int cant_en[1005], cost_en[1005];
float eficient[1005];
void Read()
{
in >> numar_gen >> cant_rep;
for(int i=1; i<=numar_gen; i++)
{
in >> cant_en[i] >> cost_en[i];
eficient[i]=(float)cant_en[i]/cost_en[i];
}
}
void Sortare()
{
bool sortat;
while(!sortat)
{
sortat=true;
for(int i=1; i<numar_gen; i++)
if(eficient[i]<eficient[i+1])
{
int aux1 = eficient[i];
eficient[i] = eficient[i+1];
eficient[i+1] = aux1;
int aux2 = cost_en[i];
cost_en[i] = cost_en[i+1];
cost_en[i+1] = aux2;
sortat=false;
}
}
}
void Rezolvare()
{
int en_necesara=0;
for(int i=1; i<=numar_gen; i++)
{
en_necesara+=cost_en[i];
if(en_necesara>=cant_rep) break;
}
if(en_necesara<cant_rep)
out << -1;
else
out << en_necesara;
}
int main()
{
Read();
Sortare();
Rezolvare();
return 0;
}