結果
| 問題 |
No.142 単なる配列の操作に関する実装問題
|
| コンテスト | |
| ユーザー |
lam6er
|
| 提出日時 | 2025-03-20 19:00:04 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 1,370 bytes |
| コンパイル時間 | 288 ms |
| コンパイル使用メモリ | 82,312 KB |
| 実行使用メモリ | 301,172 KB |
| 最終ジャッジ日時 | 2025-03-20 19:01:00 |
| 合計ジャッジ時間 | 13,546 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | TLE * 1 -- * 4 |
ソースコード
def main():
import sys
input = sys.stdin.read
data = input().split()
index = 0
n = int(data[index])
index +=1
s = int(data[index])
index +=1
X = int(data[index])
index +=1
Y = int(data[index])
index +=1
Z = int(data[index])
index +=1
# Initialize A and determine initial parity
A = [0] * n
A[0] = s
for i in range(1, n):
A[i] = (X * A[i-1] + Y) % Z
init_parity = [a % 2 for a in A]
count_parity = [0] * n
Q = int(data[index])
index +=1
for _ in range(Q):
S = int(data[index]) -1 # Convert to 0-based
index +=1
T = int(data[index]) -1
index +=1
U = int(data[index]) -1
index +=1
V = int(data[index]) -1
index +=1
L = T - S + 1
# Extract the current B's parity
b_bits = []
for j in range(S, T+1):
b_bit = init_parity[j] ^ count_parity[j]
b_bits.append(b_bit)
# Apply to the destination range
for i in range(L):
pos = U + i
count_parity[pos] ^= b_bits[i]
# Generate the result
result = []
for i in range(n):
parity = init_parity[i] ^ count_parity[i]
result.append('E' if parity == 0 else 'O')
print(''.join(result))
if __name__ == '__main__':
main()
lam6er