- 从牌面上可以得到一个上面(单独上限)
- 然后总的牌面又可以得到一个上限。
- 这两个上限的最小
#include<bits/stdc++.h>
using namespace std;
//模拟赛
int main(){
long long E,EM,M,MH,H;
cin>>E>>EM>>M>>MH>>H;
//从单独组牌来考虑问题得上届
long long easy = E+EM;
long long mid = EM+M+MH;
long long hard = MH+H;
//从单独组牌来考虑问题得上届
long long upper = min(easy,min(mid,hard));
// 以共同出现得上界和单独出现得上界取最小。
long long ans = min((E+EM+M+MH+H)/3,upper);
cout<<ans<<endl;
return 0;
}

京公网安备 11010502036488号