Cod sursa(job #1808211)

Utilizator mihnea_ocianOcian Mihnea mihnea_ocian Data 17 noiembrie 2016 15:08:46
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <cstdio>
#include <algorithm>
using namespace std;
FILE*fin,*fout;
struct obiect{int g;int v;};
obiect r[1001];
bool cmp(obiect a,obiect b)
{
   return( a.v *b.g>a.g * b.v);
}
int n,s,gr,i;
int cost;
int main()
{
    fin=fopen("rucsac.in","r");
    fout=fopen("rucsac.out","w");
    fscanf(fin,"%d%d",&n,&gr);
    for(i=1;i<=n;i++)
    {
        fscanf(fin,"%d%d",&r[i].g,&r[i].v);
    }
    sort(r+1,r+n+1,cmp);
    for(i=1;i<=n && gr>0;i++)
    {
        if(r[i].g<=gr)
        {
            gr-=r[i].g;
            cost+=r[i].v;
        }
    }

    fprintf(fout,"%d",cost);
    return 0;
}