結果
| 問題 | No.97 最大の値を求めるくえり |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2022-01-31 20:15:20 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 1,140 bytes |
| 記録 | |
| コンパイル時間 | 196 ms |
| コンパイル使用メモリ | 82,176 KB |
| 実行使用メモリ | 87,268 KB |
| 最終ジャッジ日時 | 2024-06-11 09:04:11 |
| 合計ジャッジ時間 | 6,327 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 8 WA * 1 RE * 10 |
ソースコード
import sys
def input(): return sys.stdin.readline().rstrip()
def xor128():
x, y, z, w = 123456789, 362436069, 521288629, 88675123
while True:
t = (x ^ (x << 11)) & 0xFFFFFFFF
x = y
y = z
z = w
w ^= (w >> 19) ^ t ^ (t >> 8)
yield w
def main():
N, Q = map(int, input().split())
qv = [int(input()) for i in range(Q)]
MOD = 100003
X = xor128()
A = [next(X) % MOD for i in range(N)]
if N**2 < MOD:
print(*(max(map(lambda x: (x*q) % MOD, A)) for q in qv), sep='\n')
else:
cnt = [False]*MOD
for i in A:
cnt[i] = True
ans = {}
for q in qv:
if q == 0:
print(0)
if q in ans:
print(ans[q])
qinv = pow(q, -1, MOD)
cur = MOD-qinv
while True:
if cnt[cur]:
ans[q] = cur * q % MOD
print(ans[q])
break
else:
cur = cur - qinv if cur - qinv > 0 else cur - qinv + MOD
if __name__ == '__main__':
main()