Cod sursa(job #2202635)

Utilizator catalinmatei13Stan Catalin catalinmatei13 Data 9 mai 2018 16:14:16
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include <iostream>
#include <fstream>
using namespace std;
int o[50]; // ordinea obiectelor
float c[100] , g[100] , x[100] , Gr , GMax;
int n;
int main()
{
	int i , schimb , aux;
	ifstream f("rucsac.in");
	ofstream g("rucsac.out");
	cout<<" n= "; f>>n;
	cout<<" GMax= "; f>>GMax;
	cout<<" Castigul si greutatea pentru fiecare obiect\n ";
	for(i=0 ; i<n ; i++){
		o[i]=i;
		f>>c[i]>>g[i];
	}// ordonez obiectele descrescator dupa castigul unitar
	do{
		schimb=0;
		for(i=0 ; i<n-1 ; i++)
			if( c[o[i]] / g[o[i]] < c[o[ i + 1 ]] / g[o[ i + 1 ]] ){
				aux=o[i];  o[i] = o[i+1];  o[i+1]=aux;  schimb=1;
			}
		
		
	} while(schimb);
	for(i=0 , Gr=GMax ; i<n && Gr>g[o[i]] ; i++){
		x[o[i]]=1;  Gr-=g[o[i]];
	}
	if( i<n ) x[o[i]] = Gr/g[o[i]];
	cout<<"Obiectele selectate sunt: \n";
	for(i=0 ; i<n ; i++)
		if(x[i])
			g<<i+1<<" "<<x[i] * 100<<"%"<<"\n";
	return 0;	
}