Alice、Bob和 Cindy一起玩猜拳的游戏。
和两个人的猜拳类似,每一轮,他们会从石头、剪刀、布中各自选一个出拳,基本的胜负规则是石头赢剪刀、剪刀赢布、布赢石头。如果一轮中正好可以分成胜负两边,则负边的每个人要支付给胜边的每个人一块钱。如果无法分成胜负两边,则都不出钱。
比如,如果 Alice 出石头,而 Bob 和 Cindy 都出布,则 Alice 要分支付 Bob 和 Cindy 一块钱。 再如,如果 Alice出石头,Bob出剪刀,Cindy出布,则都不出钱。
他们三人共进行了 n 轮游戏,请问最后每个人净赚多少钱?即赚的钱减去支付的钱是多少?
#include <bits/stdc++.h>
using namespace std;
struct hu
{
int a,b,c;
};
hu s[10000];
int as = 0,bs = 0,cs = 0;
int main()
{
int n;
cin >> n;
for(int i = 1;i <= n;i++)
{
cin >> s[i].a >> s[i].b >> s[i].c;
}
for(int i = 1;i <= n;i++)
{
int ra = s[i].a;
int rb = s[i].b;
int rc = s[i].c;
if(ra != rb && rb != rc && ra != rc)
{
continue;
}
if(ra == rb && ra != rc)
{
as++;
bs++;
cs-=2;
}
if(ra == rc && ra != rb)
{
as++;
cs++;
bs-=2;
}
if(rb == rc && rb != ra)
{
cs++;
bs++;
as-=2;
}
}
cout << as << endl << bs << endl << cs;
}
卡10分了,求助