Submission #1311664

#TimeUsernameProblemLanguageResultExecution timeMemory
1311664gygMobile (BOI12_mobile)Pypy 3
0 / 100
706 ms196608 KiB
import sys
import math

def main():
    data = sys.stdin.buffer.read().split()
    it = iter(data)

    n = int(next(it))
    length = int(next(it))

    xs = [0] * n
    ys = [0] * n
    for i in range(n):
        xs[i] = int(next(it))
        ys[i] = int(next(it))

    l = 1.0
    r = 1.5e9

    sqrt = math.sqrt

    while r - l > 1e-3:
        mid = (l + r) * 0.5
        curr = 0.0
        mid2 = mid * mid

        for i in range(n):
            y = ys[i]
            if mid < y and mid < -y:
                continue

            delta = sqrt(mid2 - y * y)
            a = xs[i] - delta
            if a <= curr:
                b = xs[i] + delta
                if b > curr:
                    curr = b

        if curr >= length:
            r = mid
        else:
            l = mid

    sys.stdout.write(f"{l:.4f}")

if __name__ == "__main__":
    main()

Compilation message (stdout)

Compiling 'mobile.py'...

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

=======
#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...
#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...
#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...
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...