結果
| 問題 |
No.1156 Nada Picnic 2
|
| ユーザー |
|
| 提出日時 | 2021-08-16 16:08:55 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
AC
|
| 実行時間 | 30 ms / 2,000 ms |
| コード長 | 1,382 bytes |
| コンパイル時間 | 184 ms |
| コンパイル使用メモリ | 12,672 KB |
| 実行使用メモリ | 10,752 KB |
| 最終ジャッジ日時 | 2024-10-09 13:14:59 |
| 合計ジャッジ時間 | 1,105 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 3 |
ソースコード
"""
#問題のA+B=S型の覆面算を解くプログラム
from itertools import permutations
N=int(input())-1
hukumen=[
["シイタ","ケヤマ","イキタイ"],
["オオツカ","コクサイ","ビジツカン"],
["spring","eight","picnic"]
]
mozi=list(set([c for i in range(3) for c in hukumen[N][i]]))
mozi_non0=list(set([hukumen[N][i][0] for i in range(3)]))
rhkmn=[
[''.join(list(reversed(hukumen[i][j]))) for j in range(3)] for i in range(3)
] #和の制約のため
#全探索
for ans in permutations(range(10),len(mozi)):
#ansとmoziの順番は対応する.dict
coord=dict(zip(mozi,ans))
#print(coord)
flag=True
#non0の確認
for c in mozi_non0:
if coord[c]==0:
flag=False
if not flag:
#print("debug_non0")
continue
#+の答え
al=len(rhkmn[N][0])
bl=len(rhkmn[N][1])
sl=len(rhkmn[N][2])
sc=0
for i in range(sl):
tmp=sc
if i<al:tmp+=coord[rhkmn[N][0][i]]
if i<bl:tmp+=coord[rhkmn[N][1][i]]
sc = tmp//10 #繰り上がり
tmp= tmp%10
#check
if tmp!=coord[rhkmn[N][2][i]]:
flag=False
break
if not flag:continue
#答え
print("OK",coord)
print("END")
"""
N=int(input())
if N==1 :print(1051)
elif N==2 :print(10947)
else :print(841341)