这位蒟蒻没学会贪心,所以没做对,来请各位大佬们帮忙。
20 分代码:
#include<bits/stdc++.h>
using namespace std;
int v[1500],m[1500];
int n,t;
int main(){
cin>>n>>t;
for(int i=1;i<=n;i++){
cin>>m[i]>>v[i];
}
for(int i=1;i<n;i++){
for(int j=i+1;j<=n;j++){
if((v[i]*1.0)/(m[i]*1.0)<(v[j]*1.0)/(m[j]*1.0)){
swap(v[i],v[j]);
swap(m[i],m[j]);
}
}
}
double ans=0;
for(int i=1;i<=n;i++){
if(t-=m[i]>=0){
t-=m[i];
ans+=v[i];
}
else {
if(t>0&&t<m[i]){
ans+=(v[i]*1.0)/(m[i]*1.0)*(t*1.0);
}
printf("%.2f",ans);
return 0;
}
}
printf("%.2f",ans);
return 0;
}