p1131 潜水

版权声明:https://blog.csdn.net/huashuimu2003 https://blog.csdn.net/huashuimu2003/article/details/84438520

题目

描述 Description
在jzyz的栖霞湖著名景点“jzyz大瀑布”附近举行了一次潜水比赛。其中一个项目是从教学楼上飞下水,再潜水达到终点。这是一个团体项目,一支队伍由n人组成。在潜水时必须使用氧气瓶,但是每只队伍只有一个氧气瓶。最多两人同时使用一个氧气瓶,但此时两人必须同步游泳,因此两人达到终点的时间等于较慢的一个人单独游到终点所需要的时间。好在大家都很友好,因此任何两个人后都愿意一起游水。安排一种潜水的策略,使得最后一名选手尽量早的达到终点。
输入格式 Input Format
第一行:队伍的人数n(<=1000)。
下面是n行,每行1个数,分别是n个潜水所用的时间ti(<=1000)。
输出格式 Output Format
1个整数,表示最少用的时间。
样例输入 Sample Input

3
1 3 4

样例输出 Sample Output

8
{4+1+3}
氧气瓶还必须潜水送回来-
时间限制 Time Limitation
1s
注释 Hint
1s
来源 Source
boi 2000 day1 3

代码

#include<bits/stdc++.h>
#include<algorithm>
using namespace std;
int n,a[1011];
int m=0;
int main() 
{
	cin>>n;
	for (int i=1; i<=n; i++)
		cin>>a[i];
	sort(a+1,a+n+1);
	while (n>=4) 
	{
		for (int i=n; i>3; i-=2) 
		{
			m+=min(2*a[1]+a[i]+a[i-1],2*a[2]+a[i]+a[1]);
			n-=2;
		}	
	}
	if (n==2) m+=a[2];
	else if (n==3) m+=a[1]+a[2]+a[3];
	cout<<m<<endl;
	return 0;
}

猜你喜欢

转载自blog.csdn.net/huashuimu2003/article/details/84438520