結果
問題 |
No.3073 Fraction Median
|
ユーザー |
👑 |
提出日時 | 2025-03-21 23:20:00 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
|
実行時間 | - |
コード長 | 954 bytes |
コンパイル時間 | 409 ms |
コンパイル使用メモリ | 82,324 KB |
実行使用メモリ | 53,840 KB |
最終ジャッジ日時 | 2025-03-21 23:20:07 |
合計ジャッジ時間 | 6,268 ms |
ジャッジサーバーID (参考情報) |
judge7 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 4 TLE * 1 -- * 13 |
ソースコード
from math import gcd N = int(input()) A = sorted(list(map(int, input().split()))) def comp(X, Y): x_c, x_d = X y_c, y_d = Y return x_c * y_d <= y_c * x_d def check(val, check=False): max_c, max_d = 0, 1 cnt = 0 for i in range(N): ok, ng = 0, N while ng - ok > 1: mid = (ok + ng) // 2 if comp((A[mid - 1], A[i]), (val, 10**18)): ok = mid else: ng = mid cnt += ok if not check: continue if ok > 0 and comp((max_c, max_d), (A[ok - 1], A[i])): max_c, max_d = A[ok - 1], A[i] if check: return (max_c, max_d) return True if cnt < N * (N - 1) // 2 else False ok, ng = 0, 10**18 + 1 while ng - ok > 1: mid = (ok + ng) // 2 if check(mid): ok = mid else: ng = mid ans = check(ng, True) print(ans[0] // gcd(*ans), ans[1] // gcd(*ans))