結果
| 問題 |
No.896 友達以上恋人未満
|
| コンテスト | |
| ユーザー |
gew1fw
|
| 提出日時 | 2025-06-12 13:16:10 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
MLE
|
| 実行時間 | - |
| コード長 | 2,134 bytes |
| コンパイル時間 | 314 ms |
| コンパイル使用メモリ | 82,812 KB |
| 実行使用メモリ | 650,968 KB |
| 最終ジャッジ日時 | 2025-06-12 13:18:48 |
| 合計ジャッジ時間 | 14,714 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 1 MLE * 6 |
ソースコード
def main():
import sys
input = sys.stdin.read().split()
ptr = 0
M = int(input[ptr])
ptr +=1
N = int(input[ptr])
ptr +=1
mulX = int(input[ptr])
ptr +=1
addX = int(input[ptr])
ptr +=1
mulY = int(input[ptr])
ptr +=1
addY = int(input[ptr])
ptr +=1
MOD = int(input[ptr])
ptr +=1
# Read X, Y, A, B for the first M elements
X = list(map(int, input[ptr:ptr+M]))
ptr += M
Y = list(map(int, input[ptr:ptr+M]))
ptr += M
A = list(map(int, input[ptr:ptr+M]))
ptr += M
B = list(map(int, input[ptr:ptr+M]))
ptr += M
# Initialize x, y, a, b arrays (1-based)
x = [0] * (N + 1)
y = [0] * (N + 1)
a = [0] * (N + 1)
b = [0] * (N + 1)
x[1:M+1] = X[:]
y[1:M+1] = Y[:]
a[1:M+1] = A[:]
b[1:M+1] = B[:]
for i in range(M+1, N+1):
x_prev = x[i-1]
x_i = (x_prev * mulX + addX) % MOD
x[i] = x_i
y_prev = y[i-1]
y_i = (y_prev * mulY + addY) % MOD
y[i] = y_i
a_prev = a[i-1]
a_i = (a_prev * mulX + addX + MOD - 1) % MOD + 1
a[i] = a_i
b_prev = b[i-1]
b_i = (b_prev * mulY + addY + MOD - 1) % MOD + 1
b[i] = b_i
# Build z array
z = [0] * MOD
for i in range(1, N+1):
xi = x[i]
yi = y[i]
z[xi] += yi
# Precompute S[d] for all d from 1 to MOD
S = [0] * (MOD + 1)
for d in range(1, MOD + 1):
total = 0
k = 0
while k < MOD:
total += z[k]
k += d
S[d] = total
# Process each rabbit and compute the answer
xor_sum = 0
output = []
for j in range(1, N+1):
aj = a[j]
bj = b[j]
d1 = aj
d2 = aj * bj
if d2 > MOD:
current = S[d1]
else:
if d2 > MOD:
current = S[d1]
else:
current = S[d1] - S[d2]
if j <= M:
output.append(str(current))
xor_sum ^= current
# Output the results
print('\n'.join(output))
print(xor_sum)
if __name__ == "__main__":
main()
gew1fw