package main import ( "fmt" ) func main() { var A, B, C, D, E int fmt.Scan(&A, &B, &C, &D, &E) // now := time.Now() // defer func() { fmt.Println(time.Since(now)) }() f, s := true, true ft, st := A, C n := 0 for e := E; e > 0; { d := ft if st < d { d = st } if e < d { d = e } //fmt.Fprintf(os.Stderr, "%v: ft=%v, st=%v\n", E-e, ft, st) if f && s { n += d } ft -= d st -= d e -= d if !f && !s && ft == 0 && st == 0 { r := E - e n += n * e / r e = e % r } if ft == 0 { f = !f if f { ft = A } else { ft = B } } if st == 0 { s = !s if s { st = C } else { st = D } } } fmt.Println(n) }