結果
| 問題 |
No.173 カードゲーム(Medium)
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2015-03-27 00:50:58 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 1,231 bytes |
| コンパイル時間 | 251 ms |
| コンパイル使用メモリ | 82,388 KB |
| 実行使用メモリ | 79,036 KB |
| 最終ジャッジ日時 | 2024-06-29 01:21:32 |
| 合計ジャッジ時間 | 22,958 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 6 TLE * 4 |
ソースコード
def read_data():
N, Pa, Pb = input().split()
N = int(N)
Pa = float(Pa)
Pb = float(Pb)
A = list(map(int, input().split()))
B = list(map(int, input().split()))
A.sort(reverse=True)
B.sort(reverse=True)
return N, Pa, Pb, A, B
def solve(N, Pa, Pb, A, B):
Nsim = 10**6
Awin = 0
for i in range(Nsim):
if simulate(N, Pa, Pb, A[:], B[:]):
Awin += 1
return Awin / Nsim
import random
def simulate(N, Pa, Pb, A, B):
scoreA = 0
scoreB = 0
for i in range(N-1, 0, -1):
ra = random.random()
rb = random.random()
if ra < Pa:
pa = A[-1]
del A[-1]
else:
ia = random.randrange(0, i)
pa = A[ia]
del A[ia]
if rb < Pb:
pb = B[-1]
del B[-1]
else:
ib = random.randrange(0, i)
pb = B[ib]
del B[ib]
if pa > pb:
scoreA += pa + pb
elif pa < pb:
scoreB += pa + pb
pa = A[0]
pb = B[0]
if pa > pb:
scoreA += pa + pb
elif pa < pb:
scoreB += pa + pb
return scoreA > scoreB
N, Pa, Pb, A, B = read_data()
print(solve(N, Pa, Pb, A, B))