Cod sursa(job #1937896)

Utilizator aturcsaTurcsa Alexandru aturcsa Data 24 martie 2017 13:09:52
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");

double p[5005],g[5005],n,s,G,rez,schimb,rap[5005],st,dr;
int main() {
	fin>>n>>G;
	for(int i=1;i<=n;i++)
	{
		fin>>g[i]>>p[i];
		rap[i]=p[i]/g[i];
	}
	do
	{
		schimb=0;
			for(int i=n;i>=1;i--)
			{
				if(rap[i]<rap[i+1])
					{swap(rap[i],rap[i+1]);
					swap(p[i],p[i+1]);
					swap(g[i],g[i+1]);
					schimb=1;
					}
			}
	}
	while(schimb);
	st=rap[1];
	dr=st;

	int i=0;
	for(int i=1;i<=n;i++)
		cout<<g[i]<<" "<<p[i]<<" ("<<rap[i]<<")\n";
	while(s<G)
	{
		s=s+g[i];
		rez=rez+p[i];
		i++;
		cout<<p[i]<<" ";
	} 
	fout<<rez;
	return 0;
}