結果
問題 |
No.97 最大の値を求めるくえり
|
ユーザー |
![]() |
提出日時 | 2025-06-12 16:16:12 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,277 bytes |
コンパイル時間 | 256 ms |
コンパイル使用メモリ | 82,324 KB |
実行使用メモリ | 89,644 KB |
最終ジャッジ日時 | 2025-06-12 16:17:20 |
合計ジャッジ時間 | 8,965 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 4 TLE * 1 -- * 14 |
ソースコード
mod = 100003 # Initialize xor128 state xor128_x, xor128_y, xor128_z, xor128_w = 123456789, 362436069, 521288629, 88675123 def xor128(): global xor128_x, xor128_y, xor128_z, xor128_w t = xor128_x ^ ((xor128_x << 11) & 0xFFFFFFFF) t = t & 0xFFFFFFFF # Ensure 32-bit xor128_x, xor128_y, xor128_z = xor128_y, xor128_z, xor128_w t_part = t ^ (t >> 8) xor128_w = (xor128_w ^ ((xor128_w >> 19) & 0xFFFFFFFF) ^ t_part) & 0xFFFFFFFF return xor128_w def generateA(N): A = [] for _ in range(N): val = xor128() % mod A.append(val) return A def main(): import sys input = sys.stdin.read().split() ptr = 0 N = int(input[ptr]) ptr += 1 Q = int(input[ptr]) ptr += 1 queries = [int(input[ptr + i]) for i in range(Q)] # Generate array A A = generateA(N) # Create existence array exist = [False] * mod for a in A: exist[a] = True # Process each query for q in queries: if q == 0: print(0) continue inv_q = pow(q, mod - 2, mod) for x in range(mod - 1, -1, -1): a = (x * inv_q) % mod if exist[a]: print(x) break if __name__ == '__main__': main()