Cod sursa(job #1320445)

Utilizator silathechampsilviu catioiu silathechamp Data 17 ianuarie 2015 23:26:22
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.99 kb
#include <iostream>
#include <fstream>
using namespace std;
int n,val[10],v;
float G;
struct ruc
{
    int g,v;
}a[50];
void citire ()
{
    ifstream f("rucsac.in");
    f>>n>>G;
    for (int i=0;i<n;i++)
        f>>a[i].g>>a[i].v;

}
void sortare ()
{
    for (int i=0;i<n-1;i++)
        for (int j=i;j<n;j++)
            if (a[i].g / a[i].v < a[j].g / a[j].v)
            swap(a[i],a[j]);
}
void prel (int &v)
{
    int vt=0;
    int i=0;
     v=0;
    while (i < n && G > 0)
    {
        if (a[i].g <= G)
            {vt+=a[i].v;
            G-=a[i].g;
            val[v++]=i+1;
            }
        else
        {
int t=G/(a[i].g*a[i].v);
            vt+=t;
            G=0;
        }
          i++;


    }
    ofstream g("rucsac.out");
    g << vt;

}
void af ()
{ cout << "Obiectele din rucsac sunt : ";
     for (int i=0;i<v;i++)
        cout<<val[i]<<" ";
}
int main()
{
    citire();
    sortare();
    prel(v);
    //af();

    return 0;
}