Cod sursa(job #1808211)
| Utilizator | 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;
}
