結果
問題 | No.97 最大の値を求めるくえり |
ユーザー |
![]() |
提出日時 | 2025-04-15 23:23:44 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,264 bytes |
コンパイル時間 | 143 ms |
コンパイル使用メモリ | 81,484 KB |
実行使用メモリ | 88,936 KB |
最終ジャッジ日時 | 2025-04-15 23:25:21 |
合計ジャッジ時間 | 9,929 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 4 TLE * 1 -- * 14 |
ソースコード
def main(): import sys input = sys.stdin.read().split() idx = 0 m = 100003 N = int(input[idx]) idx += 1 Q = int(input[idx]) idx += 1 queries = [int(input[idx + i]) for i in range(Q)] # Initialize xor128 variables xor_x = 123456789 xor_y = 362436069 xor_z = 521288629 xor_w = 88675123 def xor128(): nonlocal xor_x, xor_y, xor_z, xor_w t = xor_x ^ ((xor_x << 11) & 0xFFFFFFFF) t = t ^ ((t >> 8) & 0xFFFFFFFF) xor_x, xor_y, xor_z, xor_w = xor_y, xor_z, xor_w, xor_w new_w_part = (xor_w ^ (xor_w >> 19)) & 0xFFFFFFFF new_w = (new_w_part ^ t) & 0xFFFFFFFF xor_w = new_w return xor_w # Generate A A = [] for _ in range(N): val = xor128() % m A.append(val) # Create existence array exist = [False] * m for x in A: exist[x] = True # Process each query for q in queries: if q == 0: print(0) continue inv_q = pow(q, m - 2, m) found = -1 for k in range(m - 1, -1, -1): a = (k * inv_q) % m if exist[a]: found = k break print(found) if __name__ == "__main__": main()