为什么只有第一个样例能通过啊
查看原帖
为什么只有第一个样例能通过啊
1068224
a15801016376楼主2024/6/26 16:28
#include<stdio.h>
#define maxn 100
typedef struct node{
    double v,m,m_v;
}list;
void swap(list *a,list *b){
    list temp;
    temp=*a;
    *a=*b;
    *b=temp;
}
void sort(list *a,int n){
    for(int i=0;i<n;i++){
        if(a[i].m_v<a[i+1].m_v){
            swap(a+i,a+i+1);
        }
    }
}
int main(){
    double n,t;
    double sum=0;
    list bag[maxn];
    scanf("%lf%lf",&n,&t);
    for(int i=0;i<n;i++){
        scanf("%lf%lf",&bag[i].m,&bag[i].v);
        bag[i].m_v=bag[i].v/bag[i].m;
    }
    sort(bag,(int)n);
    for(int i=0;i<n;i++){
        if(t>bag[i].m){
            sum+=bag[i].v;
            t-=bag[i].m;
        }
        else{
            sum+=bag[i].v*(t/bag[i].m);
            break;
        }
    }
    printf("%.2lf",sum);
    return 0;
}
2024/6/26 16:28
加载中...