【模拟】【codeforces】599A Patrick and Shopping

http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=111969

有一个房子,房子两侧有1和2两个商店,一个人要从房子出发到1和2商店买东西再回到房子,给出路径长度d1 d2 d3(就是图中的10 20 30)

路可以重复走也可以不走,问怎么走路最短

一共就这么几种走的方法:

从房子出发一次走过三条路d1 d2 d3就可以遍历回家。

也可能因为某条路极其的长而选择重复走其他的路以避免走这条路:

比如d1非常长,就可以先走d2去店2,走d3去店1,走d3回到店2,走d2回到家。

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 
 4 int d1, d2, d3;
 5 int sum[5];
 6 
 7 int main(){
 8     while(~scanf("%d%d%d", &d1, &d2, &d3)){
 9         sum[0] = d1+d2+d3;
10         sum[1] = (d2+d3)*2;
11         sum[2] = (d1+d3)*2;
12         sum[3] = (d1+d2)*2;
13         sort(sum, sum+4);
14         printf("%d
", sum[0]);
15         memset(sum, 0, sizeof(sum));
16     }
17 
18     return 0;
19 }
原文地址:https://www.cnblogs.com/miaowTracy/p/5336148.html