Pagini recente » Monitorul de evaluare | Cod sursa (job #1911945) | ONIS 2014, Runda 4 | Cod sursa (job #269214) | Cod sursa (job #1532857)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
int main()
{
ifstream fin("energii.in");
ofstream fout("energii.out");
int t, e, a[1002], b[1002]; double c[1002];
fin >> t;
fin >> e;
for (int i = 1; i <= t; i++)
{
fin >> a[i] >> b[i];
c[i] = (b[i]*1.00)/ a[i];
}
bool u;
do {
u = false;
for(int j = 1; j <= t; j++)
if(c[j] < c[j-1])
{
swap(c[j],c[j-1]);
swap(a[j],a[j-1]);
swap(b[j],b[j-1]);
u = true;
}
} while (u);
for (int i = 1; i <= t; i++) cout << c[i] << " ";
for (int i = 1; i < t ; i++)
{
if(a[i] < a[i+1])
{
swap(a[i],a[i+1]);
swap(b[i],b[i+1]);
}
}
int energie = 0, suma = 0;
int i = 1;
while (energie < e && i <= t)
{
energie += a[i];
suma += b[i];
i++;
}
cout << energie;
if (energie >= e)
fout << suma;
else fout << "-1";
return 0;
}