1799: wrz的压岁钱
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 355 Solved: 53
Submit Status Web Board
Description
马上要过年了,电子信息wrz要去亲戚家拿压岁钱。
他的亲戚有三家,他有一辆谷鸽牌电动车,电量只能支持从自己家骑到任意一家亲戚家,然后电动车就会没电了,电动车会放在该亲戚家充电。
剩下的两家亲戚由电子信息wrz步行过去,之后再回来骑充满电的谷鸽牌电动车回家。
但是电子信息wrz比较懒,不喜欢走太多路,你能帮他算出最少要走多少路程吗?
Input
第一行为数字T,表示有T(1<=T<=1000)组测试数据。
每组数据占一行,分别有三个整数x,y,z,代表三家中任意两家的路程。(1<=x,y,z<=10^9)
例如:三家亲戚分别为a,b,c,则三个数字分别为a到b的路程,b到c的路程,c到a的路程。
Output
每个实例输出占一行:格式为Case #x: y
x为第x个实例,y为电子信息wrz需要走的最短路程。
Sample Input
3 1 2 3 4 5 6 7 8 9
Sample Output
Case #1: 6 Case #2: 15 Case #3: 24
一个很简单的问题。
题解:
wrz走亲戚有两种情况。一个是亲戚家可以组成一个三角形,一个是不能。
可以的话把三个长度相加。不可以就选最短的两个相加再乘以二。
#include<stdio.h>
#include<algorithm>
using namespace std;
long long a[5];
int main()
{
int t,i;
long long s;
scanf("%d",&t);
for(i=1;i<=t;i++)
{
scanf("%lld%lld%lld",&a[0],&a[1],&a[2]);
sort(a,a+3);
if(a[0]+a[1]>a[2])
s=a[1]+a[2]+a[0];
else
s=(a[1]+a[0])*2;
printf("Case #%d: %lld\n",i,s);
}
return 0;
}