fn solve(time distance : real) : int [ var disc := time * time - distance * 4; if disc < 0 then [ return 0; ] else [ var first_root := ceil(next_number((time - sqrt(disc)) / 2)); var second_root := floor(prev_number((time + sqrt(disc)) / 2)); var result := second_root - first_root + 1; result := max(result, 0); return result; ] ] fn main [ var lines := list_break_to_lines(read_lazy(h[0])); var t := lines[0][list_search(lines[0], ':') + 1 .. ]; t := list_replace_substring(t, " ", ""); var time := ston(t); var d := lines[1][list_search(lines[1], ':') + 1 .. ]; d := list_replace_substring(d, " ", ""); var distance := ston(d); var result := solve(time, distance); write(h[1], ntos(result) + nl); ]