Help!!!!!!!!!!!!!!!!!!!!!!!!!!!
  • 板块题目总版
  • 楼主wlxzg
  • 当前回复7
  • 已保存回复7
  • 发布时间2024/4/7 20:19
  • 上次更新2024/4/7 21:54:54
查看原帖
Help!!!!!!!!!!!!!!!!!!!!!!!!!!!
1011797
wlxzg楼主2024/4/7 20:19

排队接水

描述

有n个人在m个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一种顺序,使得n个人的总等待时间最小。

输入

共两行,第一行为n,m两个正整数;第二行分别表示第1个人到第n个人每人的接水时间T1,T2,…,Tn,每个数据之间有1个空格。

输出

一个整数,为这种排列方案下的总等待时间。

输入样例 1

10 3

56 12 1 99 1000 234 33 55 99 812

输出样例 1

457

提示

n, m ≤10^5, ti≤10^7,不保证 ti 不重复。

总等待时间可能会超过int的存储范围。

大佬帮忙改一下代码,谢谢(本人在线等)。

#include<bits/stdc++.h>
using namespace std;
long long n,m,a[100001];
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	sort(a+1,a+1+n);
	int wait[100001]={0},sum=0;
	for(int i=1;i<=m;++i)
	{
		wait[i]=a[i];
	}
	for(int i=m+1;i<=n;++i)
	{
		wait[i]=a[i];
		sum+=wait[i];
	}
	cout<<sum;
}
2024/4/7 20:19
加载中...