Cod sursa(job #1579774)

Utilizator mateibanuBanu Matei Costin mateibanu Data 25 ianuarie 2016 08:32:12
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <stdio.h>
#include <algorithm>

using namespace std;

FILE*f=fopen("rucsac.in","r");
FILE*g=fopen("rucsac.out","w");

struct r
{
    double g,c;
}v[5001];

int comp(r a,r b)
{
    return a.c/a.g>b.c/b.g;
}
int main()
{
    int n,gmax,p=0,i;
    fscanf(f,"%d%d",&n,&gmax);
    for (i=1;i<=n;i++)
    {
        fscanf(f,"%lf%lf",&v[i].g,&v[i].c);
    }
    sort(v+1,v+n+1,comp);
    for (i=1;i<=n&&gmax;i++)
    {
        if (gmax>=v[i].g) {gmax-=v[i].g;p+=v[i].c;}
    }
    fprintf(g,"%d",p);
    return 0;
}