Pagini recente » Cod sursa (job #1102134) | Cod sursa (job #272401) | Cod sursa (job #1958983) | Cod sursa (job #2617225) | Cod sursa (job #1049583)
#include <iostream>
#include <fstream>
#include <math.h>
#include <stdlib.h>
using namespace std;
int a[100],b[100],w,g;
void citire()
{
int i;
ifstream f ("energii.in");
f>>g;
f>>w;
for(i=0;i<g;i++)
{f>>a[i];
f>>b[i];
}
f.close();
}
void sorteaza()
{
int ok,i,aux;
do{
ok=1;
for(i=0;i<g-1;i++)
if(a[i]/b[i]<a[i+1]/b[i])
if(abs(a[i]-w)>abs(a[i+1]-w))
{
aux=b[i];
b[i]=b[i+1];
b[i+1]=aux;
aux=a[i];
a[i]=a[i+1];
a[i+1]=aux;
ok=0;
}
}while(ok!=1);
}
int calculeaza()
{
int f=1,i,z=0,s=0;
for(i=0;i<g&&f;i++)
{
s=s+a[i];
z=z+b[i];
if(s>=w)
{f=0;
return z;}
}
return -1;
}
int main()
{
int z;
citire();
sorteaza();
ofstream h ("energii.out");
z=calculeaza();
if(z==0) h<<-1;
else h<<z;
h.close();
for(int i=0;i<g;i++)
cout<<a[i]<<' ';
return 0;
}