Cod sursa(job #1579783)

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

using namespace std;

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

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

int comp(r a,r b)
{
    return (float)a.c/a.g>(float)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,"%d%d",&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;
}