遥夕


私信TA

用户名:uq_34525743706

访问量:2494

签 名:

浪漫

等  级
排  名 739
经  验 3703
参赛次数 0
文章发表 19
年  龄 20
在职情况 学生
学  校
专  业 计算机科学与技术

  自我简介:

思路就是:点餐快的人排前面,让后面大家等待的时间短。


1、一开始用c写,结果发现超时,冒泡排序太慢了

#include <stdio.h>
int main()
{
int n,a[100001],t,k;
long long int s=0; 
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(int i=1;i<n;i++){
for(int j=0;j<n-i;j++){
if(a[j]>a[j+1]){
t=a[j];a[j]=a[j+1];a[j+1]=t;
}   //对点餐时间进行排序 
}
}
k=n-1;
for(int i=0;i<n-1;i++){//点餐快的人排前面,总的点餐时间最短 
s+=k*a[i];
k--;
}
printf("%lld",s);
return 0;
}

2、了解到了c++的sort排序功能的强大,模仿别人的c++代码,果然就过了

#include <bits/stdc++.h>
using namespace std;
int main()
{
	int n,a[100001],k;
	long long s;
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>a[i];
	}
	sort(a,a+n);//点餐快的人排前面,总的点餐时间最短
	k=n-1;
	for(int i=0;i<n-1;i++){
		s+=k*a[i];
		k--;
	}
	cout<<s<<endl;
	return 0;
}


 

0.0分

2 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区