結果
| 問題 |
No.1682 Unfair Game
|
| コンテスト | |
| ユーザー |
AEn
|
| 提出日時 | 2023-01-20 00:31:32 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 39 ms / 2,000 ms |
| コード長 | 482 bytes |
| コンパイル時間 | 563 ms |
| コンパイル使用メモリ | 81,848 KB |
| 実行使用メモリ | 54,196 KB |
| 最終ジャッジ日時 | 2024-06-22 17:27:09 |
| 合計ジャッジ時間 | 2,348 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 20 |
ソースコード
N = int(input())
P = list(map(int, input().split()))
mod = 10**9+7
p,q = 0,0
for i in range(N):
if P[i]>50:
p += 1
elif P[i]<50:
q += 1
fac = [0]*(p+1)
inv = [0]*(p+1)
fac[0]=inv[0]=1
for i in range(1,p+1):
fac[i] = (fac[i-1]*i)%mod
inv[i] = (inv[i-1]*pow(i,mod-2,mod))%mod
res = 0
P = p
po = pow(2,q,mod)
while p>0:
if p%2==0:
p -= 1
else:
res += (fac[P]*inv[p]*inv[P-p]*po)%mod
res %= mod
p -= 1
print(res)
AEn