南邮 OJ 2058 万万没想到(2)

万万没想到(2)

时间限制(普通/Java) :  1000 MS/ 3000 MS          运行内存限制 : 65536 KByte
总提交 : 140            测试通过 : 53 

比赛描述

    万万没想到,啦啦啦啦啦

    经过愉快的开场游戏之后,激动人心的签售环节终于开始了。

    根据书店与剧组安排,分别由叫兽,小爱和孔连顺分三队同时开始签售,我们不妨将其从左到右抽象成三个签售点,编号由1到3,而且平均每个签售点为一个人签名耗时1秒;

    现在,yuman作为《万万没想到》的狂热粉丝,肯定希望能获得三个人的签名。不过,yuman同时也不希望排队时间太长,所以他想找出一种最优的排队策略,使他获得这三个人的签名,而且用时最短。



输入

先输入一个正整数T,(1<=T<=100),表示有T组数据;

对于每一组数据,分别输入三个整数,第i个数pi,表示当前第i个签售点有pi个人(0<=pi<=10000);

输出

对于每一组数据,输出一个正整数,表示在最优策略下,排队的总时间;

样例输入

2
0 1 2
3 1 2

样例输出

3
4

提示

对于第一组样例,yuman的排队顺序是 1 -> 2 -> 3;

对于第二组样例,yuman的排队顺序是 2 -> 3 -> 1;

题目来源

yuman





#include<iostream>
#include<algorithm>
using namespace std;

int main(){
	int n,i,cost;
	int a[3];
	cin>>n;
	while(n--){
		cost = 3;
		for(i=0;i<3;++i){
			cin>>a[i];
		}
		sort(a,a+3);
		cost += a[0];
		if(a[1]-a[0]>1){
			cost = cost+a[1]-a[0]-1;
		}
		if(a[2]-a[1]>1){
			cost = cost+a[2]-a[1]-1;
		}
		cout<<cost<<endl;
	}
}


你可能感兴趣的:(ACM,南邮OJ,万万没想到2)