← Home
For problem statement at 0-999/200-299/240-249/248/problemC.txt this is a correct solution, but verifier at 0-999/200-299/240-249/248/verifierC.go ends with case 1 failed: expected 8.2352941176 got -1.0000000000
exit status 1 can you fix the verifier? package main

import (
	"bufio"
	"fmt"
	"math"
	"os"
)

func main() {
	in := bufio.NewReader(os.Stdin)
	out := bufio.NewWriter(os.Stdout)
	defer out.Flush()

	var y1, y2, yw, xb, yb, r int64
	fmt.Fscan(in, &y1, &y2, &yw, &xb, &yb, &r)

	y1f := float64(y1)
	y2f := float64(y2)
	ywf := float64(yw)
	xbf := float64(xb)
	ybf := float64(yb)
	rf := float64(r)

	h := ywf - rf
	a := 2*h - y2f
	u := 2*h - y1f - rf

	dx := xbf
	dy := ybf - a
	rr := rf * rf
	d2 := dx*dx + dy*dy

	if d2 <= rr {
		fmt.Fprintln(out, -1)
		return
	}

	s := math.Sqrt(d2 - rr)
	gt := a + (-rr*dy+rf*dx*s)/(dx*dx-rr)

	l := math.Max(a+rf, gt)
	if l >= u-1e-12 {
		fmt.Fprintln(out, -1)
		return
	}

	gp := (l + u) / 2
	xw := xbf * (gp - h) / (gp - ybf)

	fmt.Fprintf(out, "%.15f\n", xw)
}