蓝桥 3.宝玉请安【算法赛】 题型:枚举

28 阅读1分钟

3.宝玉请安【算法赛】 - 蓝桥云课 (lanqiao.cn)

#include<bits/stdc++.h>
#define int long long
using namespace std;

void solve()
{
    int ans=0;
    int a,b,c;cin>>a>>b>>c;
    
    if(a<b&&b<c)  // a  b  c
    {
        ans+=(c-a);
    }
    else if(a<c&&c<b)  //a c b
    {
        ans+=(b-a);
    }
    else if(a>b&&a<c)  //b a c
    {
      if((a-b)<(c-a))
      {
          ans+=2*(b-a)+(c-a);
      }
      else
      {
          ans+=2*(c-a)+(a-b);   
      }
    }
    else if(a>c&&a<b)  //c a b
    {
      if((a-c)<(b-a))
      {
          ans+=2*(a-c)+(b-a);
      }
      else
      {
          ans+=2*(b-a)+(a-c);
      }
    }
    cout<<ans<<endl;
    
}
signed  main()
{
  cin.tie(nullptr)->sync_with_stdio(false);
    int t;cin>>t;
    while(t--)
    solve();
    
    return 0;
}

image.png

#include<bits/stdc++.h>
using namespace std;
#define int long long
void solve()
{
    int a,b,c;
    cin>>a>>b>>c;
    int s=0;
    if(a<b&&a<c)
    {
        s+=max(c-a,b-a);
        cout<<s<<endl;
    }
    if(a>b&&a>c)
    {
        s+=max(a-c,a-b);
        cout<<s<<endl;
    }
    if(b>a&&a>c||c>a&&a>b)
    {
        s+=2*min(abs(b-a),abs(c-a))+max(abs(b-a),abs(c-a));
        cout<<s<<endl;
    }
}
signed main()
{
    int T;
    cin>>T;
    while(T--)
    {
        solve();
    }
}

image.png