A. Trip For Meal

题目链接:http://codeforces.com/contest/876/problem/A

题目意思:现在三个点1,2,3,1-2的路程是a,1-3的路程是b,2-3的路程是c,从1点开始,****在1点吃过一次蜂蜜了,但是他要吃n次蜂蜜,每次他离开一个地方以后这个地方的蜂蜜就会自动补充,问最少需要走多少距离。

题目思路:如果n=1,那么就是0,如果n等于2,那么答案说就是min(a,b),如果n>2,答案就是min(a,b)+(n-2)*min(a,b,c);

代码:

 1 //Author: xiaowuga
 2 #include <bits/stdc++.h>
 3 using namespace std;
 4 #define inf 0x3f3f3f3f
 5 #define MAX INT_MAX
 6 #define mem(s,ch) memset(s,ch,sizeof(s))
 7 const long long N=100000; 
 8 const long long mod=1e9+7; 
 9 typedef long long LL;
10 typedef int II;
11 typedef unsigned long long ull;
12 #define nc cout<<"nc"<<endl
13 #define endl "\n"
14 int main() {
15     ios::sync_with_stdio(false);cin.tie(0);
16     int n,a,b,c;
17     cin>>n>>a>>b>>c;
18     int k=min(a,b);
19     k=min(k,c);
20     if(n==1) {cout<<0<<endl;return 0;}
21     if(k==a||k==b){cout<<(n-1)*k<<endl;return 0;}
22     cout<<min(a,b)+(n-2)*k<<endl;
23     return 0;
24 }
View Code

相关文章: