結果
| 問題 |
No.2920 Blood Type
|
| コンテスト | |
| ユーザー |
lam6er
|
| 提出日時 | 2025-03-20 21:01:02 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 41 ms / 2,000 ms |
| コード長 | 1,035 bytes |
| コンパイル時間 | 203 ms |
| コンパイル使用メモリ | 82,184 KB |
| 実行使用メモリ | 54,280 KB |
| 最終ジャッジ日時 | 2025-03-20 21:01:06 |
| 合計ジャッジ時間 | 2,673 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 36 |
ソースコード
s = input().strip()
t = input().strip()
def get_alleles(geno):
if geno == 'AA':
return [('A', 1.0)]
elif geno == 'AB':
return [('A', 0.5), ('B', 0.5)]
elif geno == 'AO':
return [('A', 0.5), ('O', 0.5)]
elif geno == 'BB':
return [('B', 1.0)]
elif geno == 'BO':
return [('B', 0.5), ('O', 0.5)]
elif geno == 'OO':
return [('O', 1.0)]
else:
assert False, "Invalid genotype"
s_alleles = get_alleles(s)
t_alleles = get_alleles(t)
pa = pb = pab = po = 0.0
for s_char, s_prob in s_alleles:
for t_char, t_prob in t_alleles:
prob = s_prob * t_prob
alleles = {s_char, t_char}
if 'A' in alleles:
if 'B' not in alleles:
pa += prob
else:
pab += prob
elif 'B' in alleles:
pb += prob
else:
po += prob
pa = int(round(pa * 100))
pb = int(round(pb * 100))
pab = int(round(pab * 100))
po = int(round(po * 100))
print(f"{pa} {pb} {pab} {po}")
lam6er