#include<iostream>
#include<iomanip>
using namespace std;
struct{
int m,v;
double p;
}a[110];
void swap(int *a,int *b){
int t=*a;
*a=*b;
*b=t;
}
void swap(double *a,double *b){
double t;
*a=*b;
*b=t;
}
int main(){
int N,T,i,j;
double ans;
cin>>N>>T;
for(i=0;i<N;i++){
cin>>a[i].m>>a[i].v;
a[i].p=a[i].v/a[i].m;
}
for(i=0;i<N-1;i++){
for(j=i+1;j<N;j++){
if(a[i].p<a[j].p){
swap(&a[i].m,&a[j].m);
swap(&a[i].v,&a[j].v);
swap(&a[i].p,&a[j].p);
}
}
}
for(i=0;i<N;i++){
cout<<a[i].p<<" ";
if(a[i].m<T){
ans+=a[i].v;
T-=a[i].m;
}
else{
ans+=T*a[i].p;
break;
}
}
cout<<fixed<<setprecision(2) << ans <<endl;
return 0;
}
后面直接出现了乱码