Pagini recente » Cod sursa (job #1589888) | Cod sursa (job #1043489) | Cod sursa (job #1792315) | Cod sursa (job #1174813) | Cod sursa (job #1579792)
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<cmath>
using namespace std;
FILE*f=fopen("rucsac.in","r");
FILE*g=fopen("rucsac.out","w");
struct ruc{
int c,w;
} v[10000];
int comp(ruc a, ruc b) {
if(fabs((float)a.c/a.w-(float)b.c/b.w)<0.0001) return a.c<b.c;
else return (float)a.c/a.w>(float)b.c/b.w;
}
int n,w,i,gr,p;
int main() {
fscanf(f,"%d%d",&n,&gr);
for(i=1;i<=n;i++) {
fscanf(f,"%d%d",&v[i].w,&v[i].c);
}
sort(v+1,v+n+1,comp);
i=1;
while(i<=n&&gr>0) {
if(v[i].w<=gr) {
p=p+v[i].c;
gr=gr-v[i].w;
}
i++;
}
fprintf(g,"%d",p);
return 0;
}