結果

問題 No.1361 [Zelkova 4th Tune *] QUADRUPLE-SEQUENCEの詩
ユーザー convexineq
提出日時 2021-01-23 18:03:56
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 1,200 ms / 2,000 ms
コード長 1,262 bytes
コンパイル時間 570 ms
コンパイル使用メモリ 82,468 KB
実行使用メモリ 118,732 KB
最終ジャッジ日時 2024-12-31 08:28:00
合計ジャッジ時間 35,957 ms
ジャッジサーバーID
(参考情報)
judge5 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 74
権限があれば一括ダウンロードができます

ソースコード

diff #

K,L,M,N,s,*A = map(int,open(0).read().split())
a,b,c,d = A[:K],A[K:K+L],A[K+L:K+L+M],A[K+L+M:K+L+M+N]
ab = sorted(i*j for i in a for j in b)
cd = sorted(i*j for i in c for j in d)
from bisect import bisect_left
Lab = bisect_left(ab,0)
Lcd = bisect_left(cd,0)
ok = INF = 10**18
ng = -INF
MN = M*N
while ok-ng > 1:
    mid = (ok+ng)//2
    v = r = 0
    for i in range(Lab)[::-1]:
        while r < Lcd and ab[i]*cd[r] > mid:
            r += 1
        v += Lcd-r
        if r < MN and ab[i]*cd[r] == mid: x,y = ab[i],cd[r]
    r = Lcd
    for i in range(Lab):
        while r < MN and ab[i]*cd[r] > mid:
            r += 1
        v += MN-r
        if r < MN and ab[i]*cd[r] == mid: x,y = ab[i],cd[r]
    r = 0        
    for i in range(Lab,K*L):
        while r < Lcd and ab[i]*cd[r] <= mid:
            if ab[i]*cd[r] == mid: x,y = ab[i],cd[r]
            r += 1
        v += r
    r = Lcd
    for i in range(Lab,K*L)[::-1]:
        while r < MN and ab[i]*cd[r] <= mid:
            if ab[i]*cd[r] == mid: x,y = ab[i],cd[r]
            r += 1
        v += r-Lcd
    if v >= s: ok = mid
    else: ng = mid

print(ok)
r = [0]*4
for i in a:
    for j in b:
        if i*j==x: r[0],r[1] = i,j
for i in c:
    for j in d:
        if i*j==y: r[2],r[3] = i,j
print(*r)
0