0
点赞
收藏
分享

微信扫一扫

蓝桥杯 试题 算法提高 搬运冰块

穆熙沐 2022-04-03 阅读 81
算法

原题

分析

利用 融化速度/搬运时间 比值进行排序,将比值高的先搬运


#include <bits/stdc++.h>
using namespace std;
typedef struct ice{
	int t,d;
}ice;
typedef long long ll;
ice a[100010];
bool cmp(ice x,ice y)
{
	return (double)x.d/(double)x.t>(double)y.d/(double)y.t;
}
int main ()
{
	int n;
	cin>>n;
	for (int i=1;i<=n;i++){
		scanf ("%d%d",&a[i].t,&a[i].d);
	}
	sort(a+1,a+1+n,cmp);
	int sumt=0;
	ll sum=0;
	for (int i=1;i<=n;i++){
		
		sum+=(ll)sumt*(ll)a[i].d;
		sumt+=(ll)a[i].t;
	}
	cout<<sum;
	return 0;
}
举报

相关推荐

0 条评论