题目意思:两人石头剪刀布,总数n,第二行给出a的石头,剪刀,布的次数,第三行给出b的石头,剪刀,布的次数,返回a最少能赢和最多能赢的次数
思路:最多:每次取a克制b的选择,之和两数中的最小数有关,max=min(a1,b2)+min(a2,b3)+min(a3,b1);
最少:(需要思考的地方)那么最后的时候会出现什么情况呢?就是最后自己剩下一种牌,若干张;对方也只剩下一种牌,若干张。并且自己的牌是克制对方的牌的。
有min=max(0,b1-a1-a2,b2-a2-a3,b3-a3-a1);
code:
include
include
using namespace std;
int main()
{
int n;
int a[4],b[4];
cin>>n;
for(int i=1;i<=3;i++)cin>>a[i];
for(int i=1;i<=3;i++)cin>>b[i];
int ans1=min(a[1],b[2])+min(a[2],b[3])+min(a[3],b[1]);
int ans2=max(max(0,b[1]-a[1]-a[2]),max(b[2]-a[2]-a[3],b[3]-a[3]-a[1]));
cout<<ans2<<" "<<ans1<<endl;
}
date:23.2.25
标签:Feb1,min,int,HZNU,VJ,a1,a3,a2,max From: https://www.cnblogs.com/afengdabaobei/p/17155394.html