#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int equal_count(ll arr[])//判断4个数中有几个数是相同的
{
if(arr[0]==arr[1]&&arr[0]==arr[2]&&arr[0]==arr[3])return 4;
else if(arr[0]==arr[1]&&arr[0]!=arr[2])return 2;
else if(arr[1]==arr[2]&&arr[2]!=arr[3]&&arr[0]!=arr[1])return 2;
else if(arr[2]==arr[3]&&arr[0]!=arr[1]&&arr[1]!=arr[2])return 2;
else if(arr[0]==arr[1]&&arr[0]==arr[2]&&arr[0]!=arr[3])return 3;
else if(arr[1]==arr[2]&&arr[1]==arr[3]&&arr[1]!=arr[0])return 3;
else return 1;
}
int main()
{
ll arr[4];
for(int i=0;i<4;i++)
{
cin>>arr[i];
}
ll MAX=-1;
sort(arr,arr+4);//从小到大排序
int flag=equal_count(arr);//先求出序列中有几个数是相同的
if(flag==4||flag==3)
{
if(arr[0]<arr[1])MAX=arr[0]+2*arr[3];
else MAX=arr[3]+2*arr[0];
cout<<MAX<<endl;
return 0;
}
MAX=arr[3]+arr[0]*2;
arr[2] -= arr[0];
arr[1] -= arr[0];
arr[0] = 0;
MAX += arr[1]/3*3;
if(arr[1]%3==2)MAX++;
cout<<MAX<<endl;
return 0;
}
蓝桥杯省赛无忧 编程20 四个瓷瓶的神秘游戏
于 2024-02-09 10:14:59 首次发布