Pagini recente » Cod sursa (job #2539787) | Cod sursa (job #3177810) | Cod sursa (job #514342) | Cod sursa (job #78775) | Cod sursa (job #1000296)
#include<fstream>
using namespace std;
struct obiect{
float greutate;
float profit;
float value;
};
float greutateMax;
int nrObiecte;
obiect A[5001],aux;
int main(){
ifstream inFile("rucsac.in");
ofstream outFile;
outFile.open("rucsac.out");
inFile>>nrObiecte>>greutateMax;
for(int i=1;i<=nrObiecte;i++){
inFile>>A[i].greutate>>A[i].profit;
A[i].value=A[i].profit/A[i].greutate;
}
//Sortam tabloul
bool t;
do{
t=false;
for(int i=1;i<nrObiecte;i++)
if(A[i].value<A[i+1].value){
aux=A[i];
A[i]=A[i+1];
A[i+1]=aux;
t=true;
}
} while(t);
/* for(int i=1;i<=nrObiecte;i++) outFile<<A[i].profit<<" ";
outFile<<endl;
for(int i=1;i<=nrObiecte;i++) outFile<<A[i].value<<" ";
outFile<<endl;
for(int i=1;i<=nrObiecte;i++) outFile<<A[i].greutate<<" ";
*/
float masa=0;
float venit=0;
int i=1;
while(masa<greutateMax && i<=nrObiecte){
if(masa+A[i].greutate<=greutateMax){
masa=masa+A[i].greutate;
venit=venit+A[i].profit;
i++;
}
else i++;
}
outFile<<venit;
}