Cod sursa(job #1260463)

Utilizator DarkthermanV V-Andrei Darktherman Data 11 noiembrie 2014 12:34:00
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include<fstream>
using namespace std;
double c[100],g[100],ef[100],gv,aux,castig;
int i,n,man1,inv,ordine[100];
int main()
{

  ifstream f("rucsac.in");
  ofstream f1("rucsac.out");
  f>>n;
  f>>gv;
  for(i=1;i<=n;i++)
  {
     f>>g[i]>>c[i];
     ordine[i]=i;
     ef[i]=c[i]/g[i];
  }
  do
  {
    inv=0;
    for(i=1;i<=n-1;i++)
      if(ef[i]<ef[i+1])
      {
	    aux=ef[i];
    	ef[i]=ef[i+1];
	    ef[i+1]=aux;
	   aux=c[i];
	   c[i]=c[i+1];
	   c[i+1]=aux;
	   aux=g[i];
	  g[i]=g[i+1];
	  g[i+1]=aux;
	  inv=1;
	  aux=ordine[i];
	  ordine[i]=ordine[i+1];
	  ordine[i+1]=aux;
      }
   }while(inv);
   i=1;
   while(gv>0&&i<=n)
   {
      if(gv>g[i])
      {
	   f1<<"Obiectul "<<ordine[i]<<" "<<1<<"\n";
	   gv-=g[i];
	   castig+=c[i];
      }
      i++;
    }
      f1<<"Castig total="<<castig;
      return 0;
}