def reversetimepoints(idx, mark_time, min_delay, eta, remaining_count):
  # reversetimepoints[remaining_count] = mark_time
  # reversetimepoints[1] = eta - min_delay
  # reversetimepoints[0] = eta
  # y(x) = ax^2 + bx + c
  a = -((eta - mark_time) / remaining_count - min_delay) / (remaining_count - 1)
  b = -(a + min_delay)
  c = eta
  return (a * idx + b) * idx + c
def timepoint(mark_time, min_delay, eta, remaining_count):
    return reversetimepoints(remaining_count - 1, mark_time, min_delay, eta, remaining_count)
def timepoint2(mark_time, min_delay, eta, remaining_count):
  a = -((eta - mark_time) / remaining_count - min_delay) / (remaining_count - 1)
  b = -(a + min_delay)
  c = eta
  idx = remaining_count - 1
  return (a * idx + b) * idx + c
def timepoint3(mark_time, min_delay, eta, remaining_count):
  a = -((eta - mark_time) / remaining_count - min_delay) / (remaining_count - 1)
  b = -(a + min_delay)
  idx = remaining_count - 1
  return (a * idx + b) * idx + eta
def timepoint4(mark_time, min_delay, eta, remaining_count):
  a = -((eta - mark_time) / remaining_count - min_delay) / (remaining_count - 1)
  b = -(a + min_delay)
  return eta + (remaining_count - 1) * ((remaining_count - 1) * a + b)
def timepoint5(mark_time, min_delay, eta, remaining_count):
  a = -((eta - mark_time) / remaining_count - min_delay) / (remaining_count - 1)
  return eta + (remaining_count - 1) * (
        (remaining_count - 1) * a +
        -(a + min_delay)
  )
def timepoint6(mark_time, min_delay, eta, remaining_count):
  a = -((eta - mark_time) / remaining_count - min_delay) / (remaining_count - 1)
  return eta + (remaining_count - 1) * a * (
        (remaining_count - 1) +
        -(1 + min_delay / a)
  )
def timepoint7(mark_time, min_delay, eta, remaining_count):
  return eta + (remaining_count - 1) * -((eta - mark_time) / remaining_count - min_delay) / (remaining_count - 1) * (
        (remaining_count - 1) +
        -(1 + min_delay / (
            -((eta - mark_time) / remaining_count - min_delay) / (remaining_count - 1)
        ))
  )
def timepoint8(mark_time, min_delay, eta, remaining_count):
  return eta + -((eta - mark_time) / remaining_count - min_delay) * (
        (remaining_count - 1) +
        -(1 + min_delay / (
            -((eta - mark_time) / remaining_count - min_delay) / (remaining_count - 1)
        ))
  )
def timepoint9(mark_time, min_delay, eta, remaining_count):
  return eta + (min_delay - (eta - mark_time) / remaining_count) * (
        (remaining_count - 1) +
        -(1 + min_delay / (
            -((eta - mark_time) / remaining_count - min_delay) / (remaining_count - 1)
        ))
  )
def timepoint10(mark_time, min_delay, eta, remaining_count):
  return eta + (min_delay - (eta - mark_time) / remaining_count) * (
        remaining_count - 2 +
        min_delay / (
            ((eta - mark_time) / remaining_count - min_delay) / (remaining_count - 1)
        )
  )
def timepoint11(mark_time, min_delay, eta, remaining_count):
  return eta + (min_delay - (eta - mark_time) / remaining_count) * (
        remaining_count +
        min_delay * (remaining_count - 1) / (((eta - mark_time) / remaining_count - min_delay))
        - 2
  )
def timepoint12(mark_time, min_delay, eta, remaining_count):
  return eta + (min_delay - (eta - mark_time) / remaining_count) * (
        remaining_count +
        min_delay * (remaining_count - 1) * remaining_count / (eta - mark_time - min_delay * remaining_count)
        - 2
  )
def timepoint13(mark_time, min_delay, eta, remaining_count):
  return eta + (min_delay - (eta - mark_time) / remaining_count) * (
        remaining_count +
        min_delay * remaining_count * remaining_count / (eta - mark_time - min_delay * remaining_count)
        - min_delay * remaining_count / (eta - mark_time - min_delay * remaining_count)
        - 2
  )
def timepoint14(mark_time, min_delay, eta, remaining_count):
  return eta + (min_delay * remaining_count - eta + mark_time) * (
        1 +
        min_delay * remaining_count / (eta - mark_time - min_delay * remaining_count)
        - min_delay / (eta - mark_time - min_delay * remaining_count)
        - 2 / remaining_count
  )
def timepoint15(mark_time, min_delay, eta, remaining_count):
  return eta + (
        min_delay * remaining_count - eta + mark_time + 
        (min_delay * remaining_count - eta + mark_time) * (min_delay * remaining_count / (eta - mark_time - min_delay * remaining_count)) -
        (min_delay * remaining_count - eta + mark_time) * min_delay / (eta - mark_time - min_delay * remaining_count) -
        (min_delay * remaining_count - eta + mark_time) * 2 / remaining_count
  )
def timepoint16(mark_time, min_delay, eta, remaining_count):
  return eta + (
        min_delay * remaining_count - eta + mark_time + 
        (min_delay * remaining_count - eta + mark_time) * min_delay * remaining_count / (eta - mark_time - min_delay * remaining_count) -
        (min_delay * remaining_count - eta + mark_time) * min_delay / (eta - mark_time - min_delay * remaining_count) -
        min_delay * 2 + (eta - mark_time) * 2 / remaining_count
  )
def timepoint17(mark_time, min_delay, eta, remaining_count):
  return eta + (
        (min_delay * remaining_count - eta + mark_time) * (eta - mark_time - min_delay * remaining_count) + 
        (min_delay * remaining_count - eta + mark_time) * min_delay * remaining_count +
        (min_delay * remaining_count - eta + mark_time) * -min_delay +
        (min_delay * -2 + (eta - mark_time) * 2 / remaining_count) * (eta - mark_time - min_delay * remaining_count)
  ) / (eta - mark_time - min_delay * remaining_count)
def timepoint18(mark_time, min_delay, eta, remaining_count):
  return eta + (
        min_delay * remaining_count * (eta - mark_time - min_delay * remaining_count) -
        eta * (eta - mark_time - min_delay * remaining_count) +
        mark_time * (eta - mark_time - min_delay * remaining_count)
        + 
        (min_delay * remaining_count - eta + mark_time) * min_delay * remaining_count +
        (min_delay * remaining_count - eta + mark_time) * -min_delay +
        (min_delay * -2 + (eta - mark_time) * 2 / remaining_count) * (eta - mark_time - min_delay * remaining_count)
  ) / (eta - mark_time - min_delay * remaining_count)
def timepoint19(mark_time, min_delay, eta, remaining_count):
  return eta + (
        min_delay * remaining_count * (eta - mark_time - min_delay * remaining_count) +
        -eta * (eta - mark_time - min_delay * remaining_count) +
        mark_time * (eta - mark_time - min_delay * remaining_count) + 
        (min_delay * remaining_count - eta + mark_time) * min_delay * remaining_count +
        (min_delay * remaining_count - eta + mark_time) * -min_delay +
        min_delay * -2 * (eta - mark_time - min_delay * remaining_count) +
        (eta - mark_time) * 2 / remaining_count * (eta - mark_time - min_delay * remaining_count)
  ) / (eta - mark_time - min_delay * remaining_count)
def timepoint20(mark_time, min_delay, eta, remaining_count):
  return eta + (
        min_delay * remaining_count * eta +
        min_delay * remaining_count * -mark_time +
        min_delay * remaining_count * -min_delay * remaining_count + 
        -eta * eta +
        -eta * -mark_time +
        -eta * -min_delay * remaining_count +
        mark_time * eta + mark_time * -mark_time + mark_time * -min_delay * remaining_count + 
        min_delay * remaining_count * min_delay * remaining_count + -eta * min_delay * remaining_count + mark_time * min_delay * remaining_count +
        (min_delay * remaining_count - eta + mark_time) * -min_delay +
        min_delay * -2 * (eta - mark_time - min_delay * remaining_count) +
        (eta - mark_time) * 2 / remaining_count * (eta - mark_time - min_delay * remaining_count)
  ) / (eta - mark_time - min_delay * remaining_count)
def timepoint21(mark_time, min_delay, eta, remaining_count):
  return eta + (
        min_delay * remaining_count * eta +
        min_delay * remaining_count * -mark_time +
        min_delay * remaining_count * -min_delay * remaining_count + 
        -eta * eta +
        -eta * -mark_time +
        -eta * -min_delay * remaining_count +
        mark_time * eta + mark_time * -mark_time + mark_time * -min_delay * remaining_count + 
        min_delay * remaining_count * min_delay * remaining_count + -eta * min_delay * remaining_count + mark_time * min_delay * remaining_count +
        -min_delay * min_delay * remaining_count - -min_delay * eta + -min_delay * mark_time +
        min_delay * -2 * eta +
        min_delay * -2 * -mark_time +
        min_delay * -2 * -min_delay * remaining_count +
        (eta - mark_time) * 2 / remaining_count * (eta - mark_time - min_delay * remaining_count)
  ) / (eta - mark_time - min_delay * remaining_count)
def timepoint22(mark_time, min_delay, eta, remaining_count):
  return eta + (
        min_delay * remaining_count * eta +
        min_delay * remaining_count * -mark_time +
        min_delay * remaining_count * -min_delay * remaining_count + 
        -eta * eta +
        -eta * -mark_time +
        -eta * -min_delay * remaining_count +
        mark_time * eta + mark_time * -mark_time + mark_time * -min_delay * remaining_count + 
        min_delay * remaining_count * min_delay * remaining_count + -eta * min_delay * remaining_count + mark_time * min_delay * remaining_count +
        -min_delay * min_delay * remaining_count - -min_delay * eta + -min_delay * mark_time +
        min_delay * -2 * eta +
        min_delay * -2 * -mark_time +
        min_delay * -2 * -min_delay * remaining_count +
        (eta - mark_time) * (2 * eta + -2 * mark_time + -2 * min_delay * remaining_count) / remaining_count
  ) / (eta - mark_time - min_delay * remaining_count)
def timepoint23(mark_time, min_delay, eta, remaining_count):
  return eta + (
        min_delay * remaining_count * eta +
        min_delay * remaining_count * -mark_time +
        min_delay * remaining_count * -min_delay * remaining_count + 
        -eta * eta +
        -eta * -mark_time +
        -eta * -min_delay * remaining_count +
        mark_time * eta + mark_time * -mark_time + mark_time * -min_delay * remaining_count + 
        min_delay * remaining_count * min_delay * remaining_count + -eta * min_delay * remaining_count + mark_time * min_delay * remaining_count +
        -min_delay * min_delay * remaining_count - -min_delay * eta + -min_delay * mark_time +
        min_delay * -2 * eta +
        min_delay * -2 * -mark_time +
        min_delay * -2 * -min_delay * remaining_count +
        ((eta + -mark_time) * 2 * eta + (eta + -mark_time) * -2 * mark_time + (eta + -mark_time) * -2 * min_delay * remaining_count) / remaining_count
  ) / (eta - mark_time - min_delay * remaining_count)
def timepoint24(mark_time, min_delay, eta, remaining_count):
  return eta + (
        min_delay * remaining_count * eta +
        min_delay * remaining_count * -mark_time +
        min_delay * remaining_count * -min_delay * remaining_count + 
        -eta * eta +
        -eta * -mark_time +
        -eta * -min_delay * remaining_count +
        mark_time * eta + mark_time * -mark_time + mark_time * -min_delay * remaining_count + 
        min_delay * remaining_count * min_delay * remaining_count + -eta * min_delay * remaining_count + mark_time * min_delay * remaining_count +
        -min_delay * min_delay * remaining_count - -min_delay * eta + -min_delay * mark_time +
        min_delay * -2 * eta +
        min_delay * -2 * -mark_time +
        min_delay * -2 * -min_delay * remaining_count +
        (eta * 2 * eta + -mark_time * 2 * eta + eta * -2 * mark_time + -mark_time * -2 * mark_time + eta * -2 * min_delay * remaining_count + -mark_time * -2 * min_delay * remaining_count) / remaining_count
  ) / (eta - mark_time - min_delay * remaining_count)
def timepoint25(mark_time, min_delay, eta, remaining_count):
  return eta + (
        min_delay * remaining_count * eta +
        min_delay * remaining_count * -mark_time +
        min_delay * remaining_count * -min_delay * remaining_count + 
        -eta * eta +
        -eta * -mark_time +
        -eta * -min_delay * remaining_count +
        mark_time * eta + mark_time * -mark_time + mark_time * -min_delay * remaining_count + 
        min_delay * remaining_count * min_delay * remaining_count + -eta * min_delay * remaining_count + mark_time * min_delay * remaining_count +
        -min_delay * min_delay * remaining_count - -min_delay * eta + -min_delay * mark_time +
        min_delay * -2 * eta +
        min_delay * -2 * -mark_time +
        min_delay * -2 * -min_delay * remaining_count +
        (eta * 2 * eta + -mark_time * 2 * eta + eta * -2 * mark_time + -mark_time * -2 * mark_time) / remaining_count + eta * -2 * min_delay + -mark_time * -2 * min_delay
  ) / (eta - mark_time - min_delay * remaining_count)
def timepoint26(mark_time, min_delay, eta, remaining_count):
  return eta + (
        min_delay * remaining_count * eta +
        min_delay * remaining_count * -mark_time +
        min_delay * remaining_count * -min_delay * remaining_count + 
        -eta * eta +
        -eta * -mark_time +
        -eta * -min_delay * remaining_count +
        mark_time * eta + mark_time * -mark_time + mark_time * -min_delay * remaining_count + 
        min_delay * remaining_count * min_delay * remaining_count + -eta * min_delay * remaining_count + mark_time * min_delay * remaining_count +
        -min_delay * min_delay * remaining_count - -min_delay * eta + -min_delay * mark_time +
        min_delay * -2 * eta +
        min_delay * -2 * -mark_time +
        min_delay * -2 * -min_delay * remaining_count +
        eta * -2 * min_delay + -mark_time * -2 * min_delay +
        (eta - mark_time)**2 * 2 / remaining_count 
  ) / (eta - mark_time - min_delay * remaining_count)
def timepoint27(mark_time, min_delay, eta, remaining_count):
  return eta + (
        eta * min_delay * remaining_count +
        -mark_time * min_delay * remaining_count +
        -min_delay**2 * remaining_count**2 + 
        -eta**2 +
        eta * mark_time +
        eta * min_delay * remaining_count +
        eta * mark_time + -mark_time**2 + -mark_time * min_delay * remaining_count + 
        min_delay**2 * remaining_count**2 + -eta * min_delay * remaining_count + mark_time * min_delay * remaining_count +
        -min_delay**2 * remaining_count + eta * min_delay + -mark_time * min_delay +
        -2 * eta * min_delay +
        2 * mark_time * min_delay +
        2 * min_delay**2 * remaining_count +
        -2 * eta * min_delay + 2 * mark_time * min_delay +
        (eta - mark_time)**2 * 2 / remaining_count 
  ) / (eta - mark_time - min_delay * remaining_count)
def timepoint28(mark_time, min_delay, eta, remaining_count):
  return eta + (
        -eta**2 +
        eta * mark_time +
        eta * mark_time +
        eta * min_delay +
        -2 * eta * min_delay +
        -2 * eta * min_delay +
        eta * min_delay * remaining_count +
        eta * min_delay * remaining_count +
        -eta * min_delay * remaining_count +
        -mark_time**2 +
        -mark_time * min_delay +
        2 * mark_time * min_delay +
        2 * mark_time * min_delay +
        -mark_time * min_delay * remaining_count +
        -mark_time * min_delay * remaining_count + 
        mark_time * min_delay * remaining_count +
        -min_delay**2 * remaining_count +
        2 * min_delay**2 * remaining_count +
        -min_delay**2 * remaining_count**2 + 
        min_delay**2 * remaining_count**2 +
        (eta - mark_time)**2 * 2 / remaining_count 
  ) / (eta - mark_time - min_delay * remaining_count)
def timepoint29(mark_time, min_delay, eta, remaining_count):
  return eta + (
        -eta**2 +
        2 * eta * mark_time +
        -3 * eta * min_delay +
        eta * min_delay * remaining_count +
        -mark_time**2 +
        3 * mark_time * min_delay +
        -mark_time * min_delay * remaining_count +
        min_delay**2 * remaining_count +
        (eta - mark_time)**2 * 2 / remaining_count 
  ) / (eta - mark_time - min_delay * remaining_count)
def timepoint30(mark_time, min_delay, eta, remaining_count):
  return eta + (
        -eta**2 +
        2 * eta * mark_time +
        -3 * eta * min_delay +
        eta * min_delay * remaining_count +
        -mark_time**2 +
        3 * mark_time * min_delay +
        -mark_time * min_delay * remaining_count +
        min_delay**2 * remaining_count +
        2 * (eta - mark_time)**2 / remaining_count 
  ) / (eta - mark_time - min_delay * remaining_count)
def timepoint31(mark_time, min_delay, eta, remaining_count):
  return (
        eta * mark_time +
        -3 * eta * min_delay +

        -mark_time * mark_time +
        3 * mark_time * min_delay +

        -mark_time * min_delay * remaining_count +
        min_delay * min_delay * remaining_count +
        2 * (eta - mark_time)**2 / remaining_count 
  ) / (eta - mark_time - min_delay * remaining_count)
def timepoint32(mark_time, min_delay, eta, remaining_count):
  return (
        
        (eta - mark_time) * mark_time +

        (eta - mark_time) * -3 * min_delay + 

        (min_delay - mark_time) * (min_delay * remaining_count) + 

        2 * (eta - mark_time)**2 / remaining_count 
  ) / (eta - mark_time - min_delay * remaining_count)
def timepoint33(mark_time, min_delay, eta, remaining_count):
  return (
        (eta - mark_time) * (mark_time - 3 * min_delay + (eta - mark_time) * 2 / remaining_count) -
        (mark_time - min_delay) * (min_delay * remaining_count)
  ) / (eta - mark_time - min_delay * remaining_count)
def timepoint34(mark_time, min_delay, mark_remaining, remaining_count):
  # mark_remaining = eta - mark_time
  return (
        mark_remaining * (mark_time - 3 * min_delay + 2 * mark_remaining / remaining_count) -
        (mark_time - min_delay) * min_delay * remaining_count
  ) / (mark_remaining - min_delay * remaining_count)

import random
mark_time = random.random()
min_delay = random.random() * random.random()
eta = mark_time + random.random()
remaining_count = int(64*random.random())
print(timepoint(mark_time, min_delay, eta, remaining_count))
print(timepoint2(mark_time, min_delay, eta, remaining_count))
print(timepoint3(mark_time, min_delay, eta, remaining_count))
print(timepoint4(mark_time, min_delay, eta, remaining_count))
print(timepoint5(mark_time, min_delay, eta, remaining_count))
print(timepoint6(mark_time, min_delay, eta, remaining_count))
print(timepoint7(mark_time, min_delay, eta, remaining_count))
print(timepoint8(mark_time, min_delay, eta, remaining_count))
print(timepoint9(mark_time, min_delay, eta, remaining_count))
print(timepoint10(mark_time, min_delay, eta, remaining_count))
print(timepoint11(mark_time, min_delay, eta, remaining_count))
print(timepoint12(mark_time, min_delay, eta, remaining_count))
print(timepoint13(mark_time, min_delay, eta, remaining_count))
print(timepoint14(mark_time, min_delay, eta, remaining_count))
print(timepoint15(mark_time, min_delay, eta, remaining_count))
print(timepoint16(mark_time, min_delay, eta, remaining_count))
print(timepoint17(mark_time, min_delay, eta, remaining_count))
print(timepoint18(mark_time, min_delay, eta, remaining_count))
print(timepoint19(mark_time, min_delay, eta, remaining_count))
print(timepoint20(mark_time, min_delay, eta, remaining_count))
print(timepoint21(mark_time, min_delay, eta, remaining_count))
print(timepoint22(mark_time, min_delay, eta, remaining_count))
print(timepoint23(mark_time, min_delay, eta, remaining_count))
print(timepoint24(mark_time, min_delay, eta, remaining_count))
print(timepoint25(mark_time, min_delay, eta, remaining_count))
print(timepoint26(mark_time, min_delay, eta, remaining_count))
print(timepoint27(mark_time, min_delay, eta, remaining_count))
print(timepoint28(mark_time, min_delay, eta, remaining_count))
print(timepoint29(mark_time, min_delay, eta, remaining_count))
print(timepoint30(mark_time, min_delay, eta, remaining_count))
print(timepoint31(mark_time, min_delay, eta, remaining_count))
print(timepoint32(mark_time, min_delay, eta, remaining_count))
print(timepoint33(mark_time, min_delay, eta, remaining_count))
print(timepoint34(mark_time, min_delay, eta - mark_time, remaining_count))
