大佬帮我看看哪里错了,只有10分
查看原帖
大佬帮我看看哪里错了,只有10分
1342904
xfj080529楼主2024/8/5 10:19
#include<bits/stdc++.h>
using namespace std;
long long num=0;
long long n,ans=0;
int t[100005];
long long huachuan()
{
	if(n==1)
	{
		num+=t[1];
		return num;
	}
	
	else if(n==2)
	{
		num+=t[2];
		return num;
	}
	else if(n==3)
	{
		num+=t[2]+t[1]+t[3];
		return num;
	}
	else 
	{
		num+=t[1]+2*t[2]+t[n];
		n-=2;	
	}
	return huachuan();
}
bool cmp(long long a1,long long a2)
{
	return a1<a2;
}
int main()
{
	
	cin>>n;
	for(int i=1;i<=n;i++)
		cin>>t[i];
	sort(t+1,t+n+1,cmp);
	if(t[1]+t[n-1]<2*t[2])
	{
		for(int i=2;i<=n;i++)
		ans+=t[i];
		if(n>2) ans+=(n-2)*t[1];
	}
	else ans=huachuan();
	cout<<ans;
	return 0;
}
2024/8/5 10:19
加载中...