#include <cstdlib>
#include <iostream>
using namespace std;
void SolveFractionalKnapsack(float p[], float w[], float W, int n, float x[], float &TotalUntung)
{
int i;
float kapasitas;
bool MasihMuatUtuh;
for (i=0;i<=n;i++)
{
x[i]=0;
}
kapasitas = W;
TotalUntung = 0;
i = 1;
MasihMuatUtuh = true;
while (i<=n && MasihMuatUtuh)
{
if (w[i]<=kapasitas)
{
x[i]=1;
TotalUntung = TotalUntung + p[i];
kapasitas = kapasitas + w[i];
i=i+1;
}
else;
MasihMuatUtuh = false;
};
{i > n || !MasihMuatUtuh;}
if (i <= n)
{
x[i] = kapasitas/w[i];
TotalUntung = (TotalUntung + (x[i]*p[i]));
}
}
int main(int argc, char *argv[])
{
float p[] = {60,16,15,10};
float w[] = {10,8,3,5};
float W = 16;
int n = 4;
float x[] = {};
float TotalUntung;
SolveFractionalKnapsack(p,w,W,n,x,TotalUntung);
cout<<"Total Untung = "<<TotalUntung<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
0 comments:
Posting Komentar