48分求救,4个点re。t_t
查看原帖
48分求救,4个点re。t_t
776698
c0621zy楼主2022/11/10 09:01
#include<stdio.h>
int main(){
	long long t, p, n, m, i, j, sum=0, pri=0, k=0;
	scanf("%ld%ld",&n, &m);
	struct milk
	{
		long mon, cnt;
	}a[5001];
	for(i=0;i<m;i++)
	scanf("%ld%ld",&a[i].mon, &a[i].cnt );
	for(i=0;i<n-1;i++)
	{
		for(j=0;j<n-1-i;j++)
		{
			if(a[j].mon>a[j+1].mon)  //冒泡排序交换单价与数量
			{
				t=a[1+j].mon;
				a[j+1].mon=a[j].mon;
				a[j].mon=t;
				p=a[j+1].cnt;
				a[j+1].cnt=a[j].cnt;
				a[j].cnt=p;
			}
		}
	}
	for(k=0;sum<=n;k++)  
	{
		sum+=a[k].cnt;  //计算牛奶总量
		pri+=a[k].cnt*a[k].mon;  //计算总价
	}
	if(sum==n)
	printf("%lld",pri);
	else  //若sum>n,减去多算的部分
	{
		pri=pri-(sum-n)*a[k-1].mon;
		printf("%lld",pri);
	}
	return 0;
}
2022/11/10 09:01
加载中...