Cod sursa(job #1005832)

Utilizator corint69Barcan Tudor corint69 Data 5 octombrie 2013 21:50:42
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
# include <fstream>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
struct bag
{
    int g,v,in;
}
v[100],aux;
int n,G,S=0;
void citire ()
{
    int i;
    f>>n>>G;
    for (i=1; i<=n; i++)
    {
        f>>v[i].g>>v[i].v;
        v[i].in=i;
    }
}
void ordo ()
{
    int OK,i;
    do
    {
        OK=0;
        for (i=1; i<n; i++)
            if ((float)v[i].v/(float)v[i].g<(float)v[i+1].v/(float)v[i+1].g)
            {
                aux=v[i];
                v[i]=v[i+1];
                v[i+1]=aux;
                OK=1;
            }
    }
    while (OK);
}
void greedy ()
{
    int i;
    for (i=1; i<=n&&G>0; i++)
        if (v[i].g<=G)
        {
            G=G-v[i].g;
            S=S+v[i].v;
        }
    g<<S;
}
int main ()
{
    citire ();
    ordo();
    greedy();
    f.close ();
    g.close ();
    return 0;
}