Cod sursa(job #1237341)

Utilizator Alex_dudeDudescu Alexandru Alex_dude Data 3 octombrie 2014 21:03:59
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <stdio.h>
#include <cstdlib>
#define NMAX 5000
using namespace std;

int gmax,n,i,j,pmax;

struct ob
{
    float g,p;
}x[NMAX];

int main()
{
    FILE *f=fopen("rucsac.in","r"),*g=fopen("rucsac.out","w");
    fscanf(f,"%d%d",&n,&gmax);
    for(i=1;i<=n;i++)
        fscanf(f,"%f%f",&x[i].g,&x[i].p);
    for(i=1;i<n-1;i++)
        for(j=i+1;j<=n;j++)
        if(x[i].p/x[i].g<x[j].p/x[j].g)
        {
            ob aux;
            aux=x[i];
            x[i]=x[j];
            x[j]=aux;
        }
    for(i=1;i<=n;i++)
        {
            if(gmax-x[i].g>=0)
            {
                gmax-=x[i].g;
                pmax+=x[i].p;
            }
        }
    fprintf(g,"%d",pmax);
    return 0;
}