結果
| 問題 |
No.832 麻雀修行中
|
| コンテスト | |
| ユーザー |
kekure
|
| 提出日時 | 2019-07-05 16:43:39 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,782 bytes |
| コンパイル時間 | 214 ms |
| コンパイル使用メモリ | 12,672 KB |
| 実行使用メモリ | 11,008 KB |
| 最終ジャッジ日時 | 2024-09-21 21:46:33 |
| 合計ジャッジ時間 | 2,258 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | WA * 6 |
| other | WA * 25 |
ソースコード
isagari = False
#メンツ手の再帰用関数
def mentscut(pais, i) :
global isagari
if (isagari == True) :
return
for t in range(10) : #牌のある位置まで進める
if (pais[t] > 0) :
i = t
break
else : #あがっている
isagari = True
#シュンツ抜き出し
if (i <= 7 and pais[i] > 0 and pais[i + 1] > 0 and pais[i + 2] > 0) :
pais[i] -= 1
pais[i + 1] -= 1
pais[i + 2] -= 1
mentscut(pais, i)
pais[i] += 1
pais[i + 1] += 1
pais[i + 2] += 1
#コーツ抜き出し
if (pais[i] >= 3) :
pais[i] -= 3
mentscut(pais, i)
pais[i] += 3
#メンツ手としてあがっているか
def mentsuok(pais):
global isagari
isagari = False
for i in range(1,10) :
if (pais[i] >= 2) :
pais[i] -= 2
mentscut(pais, 1)
pais[i] += 2
if (isagari == True) :
return True
return False
#チートイとしてあがっているか
def chitoiok(pais) :
return pais.count(2) == 7
#あがり牌のリストを返す関数
def agari(pais) :
agaripai = []
for add in range(1,10) :
if (pais[add] == 4) :
continue
pais[add] += 1
#メンツ手であがれるか
if (mentsuok(pais)) :
agaripai.append(add)
else :
#チートイであがれるか
if (chitoiok(pais)) :
agaripai.append(add)
pais[add] -= 1
return agaripai
pais =[0] * 10 ## 牌の数。0は使わず、牌番号とリストのindexを合わせる
tehai = input()
for x in tehai :
pais[int(x)] += 1
s = agari(pais)
print(s)
kekure