제출 #1196514

#제출 시각아이디문제언어결과실행 시간메모리
1196514ofozSelf Study (JOI22_ho_t2)Pypy 3
62 / 100
1100 ms131224 KiB
from sys import stdout, setrecursionlimit
from math import ceil, floor, sqrt




n, m = map(int, input().split(" "))
a = list(map(int, input().split(" ")))
b = list(map(int, input().split(" ")))
enum = list(range(n))
enum = sorted(enum, key = lambda i: (-max(a[i], b[i], -min(a[i], b[i]))))
def is_possible(x: int):
    extra = 0
    for i in enum:
        if b[i] >= a[i]: p = b[i]
        else: p = a[i]

        op = ceil(x/p)
        if op <= m:
            extra += (m - op)
            continue
        
        needed = min(x - m * p, extra * b[i])
        op = ceil((x-needed) / p)
        if op > m: return False
        extra -= ceil(needed/b[i])

    return True

l, r = 0, int(1e18)
while r-l>1:
    mid = (l+r)//2
    if is_possible(mid): l = mid
    else: r = mid
print(l)


컴파일 시 표준 출력 (stdout) 메시지

Compiling 'Main.py'...

=======
  adding: __main__.pyc (deflated 36%)

=======
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...