链接

题意:

A和B进行剪刀石头布的游戏,一共进行n局:
A能使用a个石头,b个剪刀,c个布
B能使用x个石头,y个剪刀,z个布
问A最少和最多可以赢多少局?

分析:

看完题直接写就好了,先分析A最少赢多少:
最少赢那就是说A的石头尽量要和B的石头或者布遇见,那么就直接用a-x-z看剩多少石头,如果还剩说明他肯定会遇上B的剪刀,这样A就赢了。同样看剪刀和布就好了

再看A最多赢多少,最多赢就是A的石头尽量遇上B的剪刀,那直接取最大值就行了。

void solve()
{
cin>>n;
ll a,b,c;
ll ta,tb,tc;
cin>>a>>b>>c;
ta=a;tb=b;tc=c;
ll x,y,z;
ll tx,ty,tz;
cin>>x>>y>>z;
tx=x,ty=y,tz=z;
ll ans=0,sum=0;
ll tmp=min(a,y);
a-=tmp;y-=tmp;
ans+=tmp;
tmp=min(b,z);
b-=tmp,z-=tmp;
ans+=tmp;
tmp=min(c,x);
c-=tmp;x-=tmp;
ans+=tmp;


sum+=max(0ll,ta-tx-tz);
sum+=max(0ll,tb-tx-ty);
sum+=max(0ll,tc-ty-tz);

cout<<sum<<" "<<ans<<endl;
}