Pagini recente » Cod sursa (job #1372086) | Cod sursa (job #1617615) | Cod sursa (job #3176098) | Cod sursa (job #243220) | Cod sursa (job #1579800)
#include <stdio.h>
#include <algorithm>
#include <cmath>
FILE*f=fopen("rucsac.in","r");
FILE*g=fopen("rucsac.out","w");
using namespace std;
struct ruc{
int gu,c;
int o;
}v[5001];
int compare(ruc a,ruc b){
if(fabs((float)a.c/a.gu-(float)b.c/b.gu)<0.00001) return(a.gu<b.gu);
return((float)a.c/a.gu>(float)b.c/b.gu);
}
int main()
{
int n;
int Gr;
fscanf(f,"%d%d",&n,&Gr);
for(int i=1;i<=n;i++)
fscanf(f,"%d%d",&v[i].gu,&v[i].c);
sort(v+1,v+n+1,compare);
int i=1;
float s=0;
while(i<=n&&Gr>0){
if(v[i].gu<Gr) {Gr-=v[i].gu;s+=v[i].c;
}
else Gr=0;
i++;
}
fprintf(g,"%.0f",s);
fclose(f);
fclose(g);
return 0;
}