結果
問題 |
No.1460 Max of Min
|
ユーザー |
![]() |
提出日時 | 2025-06-12 19:32:00 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,788 bytes |
コンパイル時間 | 225 ms |
コンパイル使用メモリ | 82,476 KB |
実行使用メモリ | 77,116 KB |
最終ジャッジ日時 | 2025-06-12 19:32:08 |
合計ジャッジ時間 | 7,289 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 13 WA * 78 |
ソースコード
import sys from collections import deque def main(): K, N = map(int, sys.stdin.readline().split()) A = list(map(int, sys.stdin.readline().split())) B = list(map(int, sys.stdin.readline().split())) if N < K: print(A[N]) return max_B = max(B) history = A.copy() prev_elements = deque(A) max_steps = 2000 # Increased to handle larger cases for step in range(K, max_steps + K): current_max = max(prev_elements) if current_max >= max_B: print(max_B) return new_term = -float('inf') for j in range(K): term = min(prev_elements[j], B[j]) if term > new_term: new_term = term history.append(new_term) prev_elements.append(new_term) prev_elements.popleft() # Check for cycles in the last 200 elements if len(history) >= 200: found = False for L in range(1, 101): if len(history) >= 2 * L: if history[-L:] == history[-2*L:-L]: cycle_start = len(history) - 2 * L if N < cycle_start: print(history[N]) return else: remainder = (N - cycle_start) % L print(history[cycle_start + remainder]) return if found: break # If no cycle found and N is within the simulated steps if N < len(history): print(history[N]) else: # Fallback: might not handle all cases but works for some print(history[-1]) if __name__ == "__main__": main()