20分求助
查看原帖
20分求助
812721
GSNB123楼主2023/1/18 20:12
#include<stdio.h>
struct m
{
   double m;
   double v;
   double l;
}m1[101];
int main()
{
    int n,t,i,a,b,c,j;
    double sum1=0;
    scanf("%d %d",&n,&t);
    for(i=0;i<n;i++)
    {
        scanf("%lf %lf",&m1[i].m,&m1[i].v);
        m1[i].l=m1[i].v*(1.0)/m1[i].m*1.0;
    }
    for(i=0;i<n;i++)
	{
		for(j=0;j<n-1;j++) 
		{
            if(m1[j].l>m1[j+1].l)
            {
                a=m1[j+1].l;
                m1[j+1].l=m1[j].l;
                m1[j].l=a;
                b=m1[j+1].m;
                m1[j+1].m=m1[j].m;
                m1[j].m=b;
                c=m1[j+1].v;
                m1[j+1].v=m1[j].v;
                m1[j].l=c;
            }
        }
    }
    for(i=0;i<n;i++)
    {
        if(t>m1[i].m)
        {
            t-=m1[i].m;
            sum1+=m1[i].v;
        }
        else
        {
            sum1+=t*m1[i].l*1.0;
            break;
        }
    }
    printf("%.2lf",sum1);
    return 0;
    
    
    
    
}
2023/1/18 20:12
加载中...