Pagini recente » Cod sursa (job #2949082) | Cod sursa (job #2031906) | Cod sursa (job #2482072) | Cod sursa (job #989954) | Cod sursa (job #503120)
Cod sursa(job #503120)
#include <fstream>
#include <iostream>
using namespace std;
int w,g,eg[1001],cg[1001],i,maxim,w2,c,j,nr,maximi;
float ef[1001],aux;
bool v[10001];
int main() {
ifstream f("energii.in");
ofstream gout("energii.out");
f>>g>>w;
for (i=1; i<=g; i++) {
f>>eg[i]>>cg[i];
ef[i]=(float)eg[i]/cg[i];
}
for (i=1; i<g; i++)
for (j=i+1; j<=g; j++)
if (ef[i]<ef[j]) {
aux=ef[i];
ef[i]=ef[j];
ef[j]=aux;
maxim=eg[i];
eg[i]=eg[j];
eg[j]=maxim;
maxim=cg[i];
cg[i]=cg[j];
cg[j]=maxim;
}
for (i=1; i<=g; i++)
if (eg[i]<=w) {
c+=cg[i];
w-=eg[i];
v[i]=true;
nr++;
}
if (w>0) {
if (nr==g)
gout<<-1;
else {
for (i=1; i<=g; i++)
if (!v[i] && maxim<cg[i]) {
maxim=cg[i];
maximi=i;
}
gout<<c+cg[i];
}
}
else
gout<<c;
return 0;
}