結果
| 問題 |
No.173 カードゲーム(Medium)
|
| コンテスト | |
| ユーザー |
noko2250
|
| 提出日時 | 2015-04-11 09:08:43 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
AC
|
| 実行時間 | 2,182 ms / 3,000 ms |
| コード長 | 874 bytes |
| コンパイル時間 | 86 ms |
| コンパイル使用メモリ | 12,544 KB |
| 実行使用メモリ | 11,392 KB |
| 最終ジャッジ日時 | 2024-07-04 13:38:23 |
| 合計ジャッジ時間 | 14,396 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 10 |
ソースコード
#!/c/Python34/python
# coding: utf-8
import random
def simulate(n, pa, pb, A, B):
a = b = 0
a += 1
for _ in range(n):
ra, rb = random.random(), random.random()
i, j = -1, -1
if ra > pa and len(A) > 1:
i = random.randrange(len(A)-1)
if rb > pb and len(B) > 1:
j = random.randrange(len(B)-1)
if A[i] > B[j]:
a += A[i] + B[j]
else:
b += A[i] + B[j]
del A[i], B[j]
return a > b
def main():
[n, pa, pb] = map(float, input().split())
n = int(n)
A = sorted(list(map(int, input().split())), reverse=True)
B = sorted(list(map(int, input().split())), reverse=True)
win, check = 0, 100000
for _ in range(check):
if simulate(n, pa, pb, A[:], B[:]):
win += 1
print(win/check)
if __name__ == '__main__':
main()
noko2250