結果
| 問題 | No.832 麻雀修行中 |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-07-30 16:10:30 |
| 言語 | PyPy3 (7.3.17) |
| 結果 |
AC
|
| 実行時間 | 61 ms / 2,000 ms |
| + 567µs | |
| コード長 | 1,520 bytes |
| 記録 | |
| コンパイル時間 | 229 ms |
| コンパイル使用メモリ | 96,092 KB |
| 実行使用メモリ | 82,240 KB |
| 最終ジャッジ日時 | 2026-07-30 16:11:02 |
| 合計ジャッジ時間 | 3,371 ms |
|
ジャッジサーバーID (参考情報) |
judge2_0 / judge3_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 6 |
| other | AC * 25 |
ソースコード
S = list(input())
S = [int(i) for i in S]
C = {i:0 for i in range(1,9+1)}
for i in S:
C[i] += 1
ans = []
def dfs(j,flag):
global S
if flag==0:
if C[j]>=2:
flag = 1
S.remove(j)
S.remove(j)
C[j] -= 2
if len(S)==0 or dfs(min(S),flag):
C[j] += 2
S += [j,j]
flag = 0
return True
C[j] += 2
S += [j,j]
flag = 0
if C[j]>=3:
S.remove(j)
S.remove(j)
S.remove(j)
C[j] -= 3
if len(S)==0 or dfs(min(S),flag):
C[j] += 3
S += [j,j,j]
return True
C[j] += 3
S += [j,j,j]
if j+2<=9 and C[j]>0 and C[j+1]>0 and C[j+2]>0:
S.remove(j)
S.remove(j+1)
S.remove(j+2)
C[j] -= 1
C[j+1] -= 1
C[j+2] -= 1
if len(S)==0 or dfs(min(S),flag):
C[j] += 1
C[j+1] += 1
C[j+2] += 1
S += [j,j+1,j+2]
return True
C[j] += 1
C[j+1] += 1
C[j+2] += 1
S += [j,j+1,j+2]
return False
for i in range(1,9+1):
if C[i]==4:continue
S.append(i)
C[i] += 1
cnt = 0
for j in range(1,9+1):
if C[j]==2:
cnt += 1
if cnt==7:
ans.append(i)
S.remove(i)
C[i] -= 1
continue
if dfs(min(S),0):
ans.append(i)
C[i] -= 1
S.remove(i)
for a in ans:
print(a)