输入 在一条笔直的公路上安装了N个路灯,从位置0开始安装,路灯之间间距固定为100米。 每个路灯都有自己的照明半径,请计算第一个路灯和最后一个路灯之间,无法照明的区间的长度和。 输出 第一个路灯和最后一个路灯之间,无法照明的区间的长度和
package main
import (
"fmt"
)
func main() {
var n int
fmt.Scan(&n)
lightDistanceList := make([]int, n)
for i := 0; i < n; i++ {
fmt.Scan(&lightDistanceList[i])
}
defaultDistance := 100
list := make([]int, (n-1)*defaultDistance)
for i, _ := range list {
list[i] = 0
}
for i := 0; i < n; i++ {
//计算相邻两盏等的照明范围
rangeItem := make([]int, 2)
rangeItem[0] = i * defaultDistance
rangeItem[1] = rangeItem[0]
if i > 0 {
rangeItem[0] = rangeItem[0] - lightDistanceList[i]
}
if i == n-1 {
rangeItem[1] = (n - 1) * defaultDistance
} else {
rangeItem[1] = rangeItem[1] + lightDistanceList[i]
}
if rangeItem[0] < 0 {
rangeItem[0] = 0
}
if rangeItem[1] > (n-1)*defaultDistance {
rangeItem[1] = (n - 1) * defaultDistance
}
for i1 := rangeItem[0]; i1 < rangeItem[1]; i1++ {
list[i1] = 1
}
}
lingtingDistance := 0
for _, v := range list {
if v == 1 {
lingtingDistance++
}
}
fmt.Println((n-1)*defaultDistance - lingtingDistance)
}