結果
問題 |
No.1361 [Zelkova 4th Tune *] QUADRUPLE-SEQUENCEの詩
|
ユーザー |
![]() |
提出日時 | 2021-01-22 23:48:42 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,388 bytes |
コンパイル時間 | 195 ms |
コンパイル使用メモリ | 82,424 KB |
実行使用メモリ | 150,624 KB |
最終ジャッジ日時 | 2024-12-28 09:39:22 |
合計ジャッジ時間 | 26,652 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 26 WA * 48 |
ソースコード
from itertools import product k, l, m, n, s = map(int, input().split()) A = list(map(int, input().split())) B = list(map(int, input().split())) C = list(map(int, input().split())) D = list(map(int, input().split())) a = sorted(x * y for x, y in product(A, B)) b = sorted(x * y for x, y in product(C, D)) na = list(filter(lambda x: x < 0, a)) pa = list(filter(lambda x: x > 0, a)) za = sum(x == 0 for x in a) s -= 1 left = -10 ** 18 right = 10 ** 18 while right - left > 1: c = (right + left) // 2 cnt = 0 i = 0 for x in na: while i < len(b) and b[i] * x >= c: i += 1 cnt += len(b) - i if c > 0: cnt += za * len(b) i = len(b) for x in pa: while i - 1 >= 0 and b[i - 1] * x >= c: i -= 1 cnt += i if cnt <= s: left = c else: right = c ans = right - 1 print(ans) if ans == 0: p = [A[0], B[0], C[0], D[0]] for i in range(4): t = [A, B, C, D][i] for x in t: if x == 0: p[i] = x print(*p) exit() bset = set(b) for x in a: if x == 0 or ans % x: continue if ans // x in b: y = ans // x break ans = [] for i, j in product(A, B): if i * j == x: ans += [i, j] break for i, j in product(C, D): if i * j == y: ans += [i, j] break assert(ans) print(*ans)