1 3 15 5 10 2 8 3 9
65
AC-code:
#include<stdio.h> #include<algorithm> using namespace std; struct bag { int v; int w; }; bool cmp(bag a,bag b) { return a.v>b.v; } int main() { int sum,s,m,i,max,n; bag a[100]; scanf("%d",&n); while(n--) { scanf("%d%d",&s,&m); for(i=0;i<s;i++) scanf("%d%d",&a[i].v,&a[i].w); max=m; sum=0; sort(a,a+s,cmp); for(i=0;i<s;i++) { if(a[i].w<=max) { sum+=a[i].v*a[i].w; max-=a[i].w; } else { sum+=a[i].v*max; break; } } printf("%d\n",sum); } return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文:http://blog.csdn.net/lin14543/article/details/47170175