結果
| 問題 |
No.896 友達以上恋人未満
|
| コンテスト | |
| ユーザー |
gew1fw
|
| 提出日時 | 2025-06-12 18:52:08 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
MLE
|
| 実行時間 | - |
| コード長 | 1,735 bytes |
| コンパイル時間 | 416 ms |
| コンパイル使用メモリ | 82,688 KB |
| 実行使用メモリ | 852,300 KB |
| 最終ジャッジ日時 | 2025-06-12 18:52:15 |
| 合計ジャッジ時間 | 3,546 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 1 MLE * 1 -- * 5 |
ソースコード
import sys
from collections import defaultdict
def main():
MOD = 0
M, N, mulX, addX, mulY, addY, MOD = map(int, sys.stdin.readline().split())
X = list(map(int, sys.stdin.readline().split()))
Y = list(map(int, sys.stdin.readline().split()))
A = list(map(int, sys.stdin.readline().split()))
B = list(map(int, sys.stdin.readline().split()))
x = [0] * (N + 1)
y = [0] * (N + 1)
a = [0] * (N + 1)
b = [0] * (N + 1)
for i in range(1, M + 1):
x[i] = X[i-1]
y[i] = Y[i-1]
a[i] = A[i-1]
b[i] = B[i-1]
for i in range(M + 1, N + 1):
x_prev = x[i-1]
x[i] = (x_prev * mulX + addX) % MOD
y_prev = y[i-1]
y[i] = (y_prev * mulY + addY) % MOD
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
count_x = defaultdict(int)
for i in range(1, N + 1):
xi = x[i]
yi = y[i]
count_x[xi] += yi
z = [0] * (MOD + 1)
for x_val, total in count_x.items():
z[x_val] = total
sum_d = [0] * (MOD + 1)
for d in range(1, MOD + 1):
multiple = d
while multiple <= MOD:
sum_d[d] += z[multiple]
multiple += d
ans = []
xor_sum = 0
for j in range(1, N + 1):
aj = a[j]
bj = b[j]
ab = aj * bj
if ab > MOD:
current_ans = sum_d[aj]
else:
current_ans = sum_d[aj] - sum_d[ab]
ans.append(current_ans)
xor_sum ^= current_ans
for j in range(M):
print(ans[j])
print(xor_sum)
if __name__ == "__main__":
main()
gew1fw