差一个测试点,帮看看谢谢!!(有注释)
查看原帖
差一个测试点,帮看看谢谢!!(有注释)
817704
Inferior_dust楼主2023/5/18 18:07
#include <bits/stdc++.h>
using namespace std ;

int n , t ;

struct qian {// 结构体存储总价,数量和单价 
	int m , v ;
	double vt ;// 单价 
} a[110];

bool cmp ( qian x , qian y ) { 
	return x.vt > y.vt ;
}

int main()
{
	double sum = 0 ;
	cin >> n >> t ;
	for ( int i = 0 ; i < n ; i ++ ) {// 输入和求单价 
		cin >> a[i].m >> a[i].v ; 
		a[i].vt = ( double ) a[i].v / a[i].m ;//求单价 
	}
	sort ( a , a + n , cmp ) ;//按最大单价排序 
	int j = 0 ;//用来记如果没装完时最大的金币堆位置 
	for ( int i = 0 ; i < n ; i ++ ) {
		if( t > 0 ) t -= a[i].m , j ++ ,sum += a[i].v  ;// 累加
	}
	if ( t != 0 ) {
		sum += t * a[j - 1].vt ;//如果没装完就把金币分割 
	}
	printf ( "%.2lf" , sum ) ;
	return 0; 
} 
2023/5/18 18:07
加载中...