123

张江鹏  •  10个月前


#include<bits/stdc++.h> 
using namespace std; 
struct bw { 
double w,v;//w重量,v价值 
}; 
bool cmp(bw a,bw b) { 
return a.v/a.w>b.v/b.w; 

int main() { 
int n,m;//先m重量,再n价值  
double sum=0; 
cin>>n>>m; 
bw a[n]; 
for(int i=0; i<n; i++) { 
 cin>>a[i].w>>a[i].v; 

sort(a,a+n,cmp); 

for(int i=0; i<n; i++) { 
 if(m>=a[i].w) { 
  sum+=a[i].v; 
  m-=a[i].w; 
 } else { 
  sum+=m*a[i].v/a[i].w; 
  m=0; 
  break; 
 } 

printf("%.2lf",sum); 
return 0; 
}


评论: