站外题求助
  • 板块学术版
  • 楼主Vizzi_02
  • 当前回复3
  • 已保存回复3
  • 发布时间2021/8/20 22:26
  • 上次更新2023/11/4 09:52:12
查看原帖
站外题求助
341396
Vizzi_02楼主2021/8/20 22:26

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分了,求助
2021/8/20 22:26
加载中...