結果
| 問題 |
No.1741 Arrays and XOR Procedure
|
| コンテスト | |
| ユーザー |
puzneko
|
| 提出日時 | 2021-11-25 00:11:29 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 108 ms / 2,000 ms |
| コード長 | 990 bytes |
| コンパイル時間 | 138 ms |
| コンパイル使用メモリ | 82,160 KB |
| 実行使用メモリ | 112,512 KB |
| 最終ジャッジ日時 | 2024-06-27 09:50:13 |
| 合計ジャッジ時間 | 4,887 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 41 |
ソースコード
from sys import stdin
n, *b = map(int, stdin.read().split())
p = 998244353
def powmod(n,pow,mod):
val = 1
while pow > 0:
if pow & 1:
val = (val * n) % mod
pow = pow >> 1
n = (n * n) % mod
return val
numof2 = [0 for i in range(n+1)]
val = 2
while val <= n:
kari = val
while kari <= n:
numof2[kari] += 1
kari += val
val = val * 2
kaijo = [0 for i in range(n+1)]
for i in range(1,n+1):
kaijo[i] = kaijo[i-1] + numof2[i]
nowans = 0
oddnum = 0
evennum = 0
for i in range(n):
kari = kaijo[n-1] - kaijo[i] - kaijo[n-1-i]
if kari >= 1:
if b[i] == -1:
evennum += 1
else:
if b[i] == -1:
oddnum += 1
else:
nowans = nowans ^ b[i]
if oddnum == 0:
if nowans == 0:
print("{}".format(0))
else:
ans = powmod(2,evennum,p)
print("{}".format(ans))
else:
ans = powmod(2,evennum+oddnum-1,p)
print("{}".format(ans))
puzneko