大佬求助?为什么我样例过了,但全错?
查看原帖
大佬求助?为什么我样例过了,但全错?
1184968
chengwenhao楼主2023/12/21 17:19
#include<stdio.h>

struct node{

    double w;
    
    double v; 
    
    double p;
    
}arr[105];

int main(){

	int n=0,t=0,m=0,q=0,z=0;
    
	double sum1=0,sum2=0;
    
	struct node brr[105];
    
	scanf("%d %d\n",&n,&t);
    
	for(int i=0;i<n;i++)
    
	 scanf("%lf %lf\n",&arr[i].w,&arr[i].v);
     
	while(m<n){
    
		arr[m].p=arr[m].v/arr[m].w;
        
		m++;
        
	}
    
	for(int i=0;i<n;i++){
    
		for(int j=0;j<n-1-i;j++){
        
			if(arr[j].p>arr[j+1].p){
           
			    brr[j]=arr[j];
                
				arr[j]=arr[j+1];
                
				arr[j+1]=brr[j];
                }	
                
		}
        
	}
    
	for(int i=n-1;i>=0;i--){
		sum1+=arr[i].w;
		if(sum1>t){
			q=sum1-t;
			z=arr[i].w-q;
			arr[i].w=z;
			sum2+=arr[i].p*arr[i].w;
			break;
		}
        
		sum2+=arr[i].p*arr[i].w;
	}
    
	printf("%.2lf\n",sum2);
    
	return 0;
    
}
2023/12/21 17:19
加载中...