#1237. [202406月赛] 五子棋

[202406月赛] 五子棋

背景

最近在方块鸟的同学间兴起了「桌游」热,比如棋类的如飞行棋、五子棋、军棋、斗兽棋,卡牌类的如三国杀,模拟策略类的比如大富翁、卡坦岛等等。想要在这些游戏里面取得胜利,需要开动脑筋制定最优策略,但有时又得拥抱运气 (比如飞行棋里一直仍不出6 ),是很好的娱乐活动。

描述

小Z除了在方块鸟学习编程,还在学习围棋,在小小的棋盘里,黑白色的棋子交替落下,比拼谁占的领地多来分个高低。说是这么说,但想要下好一盘围棋,还真不容易。事实上,围棋的复杂度是所有棋中最高的,大约是,总共可能的变化有

219194.6970851655×101082^{19*19} ≈ 4.6970851655×10^{108}

写出来的数字都有108位,可怕吧?

所以大部分同学见到黑白两色的棋子和棋盘,想到的都是五子棋。

五子棋是比的是黑白双方谁能先把自己的棋子五个连成一线,既然是这样,那先下的一方肯定有优势嘛,为了公平起见,正式的比赛里,都会采取分先决定谁先下谁后下,以下是一种利用「猜子」来分先的方法。

「猜子」是让用白棋的棋士先抓一把白子,放到棋盘上,并用手掌盖起来;接下来让用黑棋的棋士也抓起一把黑子,放到棋盘上。随后,把双方抓取棋子的数量加起来,如果是单数的话,就是抓白棋的棋士先手,否则就是抓黑棋的棋士先手。

决定了谁先下谁后下,比赛就正式打响啦。

小方小块小鸟分析了一下,想到:

  • 其棋盘,不就是一个二维数组嘛,
  • 相互落子,不就是根据x、y坐标去更新这个二维数组的嘛,
  • 判断胜负,不就是利用二维数组的x、y坐标去判断有没有满足以下三种条件之一的的五颗子嘛,

x1=x2=x3=x4=x5,y2=y1+1,y3=y2+1,...,y5=y4+1x1 = x2 = x3 = x4 = x5, y2 = y1 + 1, y3 = y2 + 1, ..., y5 = y4 + 1

y1=y2=y3=y4=y5,x2=y1+1,x3=x2+1,...,x5=x4+1y1 = y2 = y3 = y4 = y5, x2 = y1 + 1, x3 = x2 + 1, ..., x5 = x4 + 1

x2=y1+1,x3=x2+1,...,x5=x4+1,y2=y1+1,y3=y2+1,...,y5=y4+1x2 = y1 + 1, x3 = x2 + 1, ..., x5 = x4 + 1, y2 = y1 + 1, y3 = y2 + 1, ..., y5 = y4 + 1

看起来都是已经掌握的内容了,能搞!

正当小方小块小鸟撸起袖子准备在arcade或者pygame上实现一个五子棋游戏的时候,他们发现,分先的程序不好做啊,于是想到把这个任务交给你了。

你需要编写一个程序,录入双方的名字(先录白棋选手,再录黑棋选手),和抓取的棋子数量,最后输出先手选手的名字。

输入输出格式

输入

两行,第一行为白棋选手的名字以及抓取棋子的数量,以空格分割。

第二行为黑棋选手的名字以及抓取棋子的数量,以空格分割。

名字仅包含小写字母拼音,抓取棋子数量不超过50。

输出

一行,先手选手的名字。

样例

xiaofang 3
xiaokuai 1
xiaokuai