```go
package main
import "fmt"
func main() {
var n, p1, p2, p3, t1, t2 int
fmt.Scan(&n, &p1, &p2, &p3, &t1, &t2)
periods := make([][2]int, n)
for i := 0; i < n; i++ {
fmt.Scan(&periods[i][0], &periods[i][1])
}
total := int64(0)
for i := 0; i < n; i++ {
l := periods[i][0]
r := periods[i][1]
total += int64(p1) * int64(r-l)
}
for i := 0; i < n-1; i++ {
r := periods[i][1]
nextl := periods[i+1][0]
g := nextl - r
a := min(t1, g)
total += int64(p1) * int64(a)
rem := g - a
if rem > 0 {
b := min(t2, rem)
total += int64(p2) * int64(b)
rem -= b
if rem > 0 {
total += int64(p3) * int64(rem)
}
}
}
fmt.Println(total)
}
func min(x, y int) int {
if x < y {
return x
}
return y
}
```