求助,只有第一个点过了,求大佬看看
查看原帖
求助,只有第一个点过了,求大佬看看
739437
notwhy楼主2022/7/31 13:53
#include <stdio.h>
typedef struct hello
{
    double m;
    double v;
    double p;
}UIO;
void bubble(UIO a[], int n);
int main()
{
    int n, t;
    double sum = 0;
    scanf("%d %d", &n, &t);
    UIO gold[n + 1];
    for(int i = 1; i <= n; i++)
    {
        scanf("%lf %lf", &gold[i].m, &gold[i].v);
        gold[i].p = gold[i].v / gold[i].m;
    }
    bubble(gold, n);
    for(int i = 1; i <= n; i++)
    {
        if(gold[i].m <= t)
        {
            t -= gold[i].m;
            sum += gold[i].v;
        }else
        {
            sum += (1.0 * t) * gold[i].p;
            break;
        }
    }
    printf("%.2f", sum);
    return 0;
}

void bubble(UIO a[], int n)
{
    int flag = 1;
    UIO temp;
    for(int m = 1; m <= n - 1 && flag == 1; m++)
    {
        flag = 0;
        for(int i = 1; i <= n - m; i++)
        {
            if(a[i].p < a[i + 1].p)
            {
                temp = a[i];
                a[i] = a[i + 1];
                a[i + 1] = temp;
            }
        }
    }
}
2022/7/31 13:53
加载中...