結果
問題 |
No.1741 Arrays and XOR Procedure
|
ユーザー |
|
提出日時 | 2021-12-08 12:46:05 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 251 ms / 2,000 ms |
コード長 | 665 bytes |
コンパイル時間 | 211 ms |
コンパイル使用メモリ | 12,672 KB |
実行使用メモリ | 24,108 KB |
最終ジャッジ日時 | 2024-07-16 04:57:52 |
合計ジャッジ時間 | 6,301 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 41 |
ソースコード
N = int(input()) B = list(map(int,input().split())) P = 998244353 power = [0] * N i = 2 while i < N: for j in range(1,(N-1)//i + 1): power[i*j] += 1 i *= 2 now = 0 count1 = 0 count2 = 0 S = 0 if B[0] == -1: count1 += 1 else: S += B[0] if B[N-1] == -1: count1 += 1 else: S += B[N-1] for i in range(1,N-1): now = now + power[N-i] - power[i] if now > 0: if B[i] == -1:count2 += 1 else: if B[i] == -1:count1 += 1 else:S += B[i] if count1 == 0 and S % 2 == 0: print(0) exit() if count1 == 0:u = count2 else:u = count1 + count2 -1 t = 1 for _ in range(u): t *= 2 t %= P print(t)