package main import ( "bufio" "fmt" "os" "strconv" "strings" ) var StationList = []int{} var Answer = []int{} var Max = 0 var Min = 0 func main() { sc := bufio.NewScanner(os.Stdin) ans := "" sc.Scan() header := strings.Split(sc.Text(), " ") Min, _ = strconv.Atoi(header[1]) Max, _ = strconv.Atoi(header[2]) sc.Scan() for _, s := range strings.Split(sc.Text(), " ") { v, _ := strconv.Atoi(s) StationList = append(StationList, v) } for i := range StationList { memo := make([]int, len(StationList)) Answer = append(Answer, i) rec(i, &memo) fmt.Println() ans += fmt.Sprintf("%v\n", len(Answer)) Answer = []int{} } fmt.Print(ans) } func rec(base int, memo *[]int) { (*memo)[base] = 1 for i := range StationList { fmt.Println(base, i) if (*memo)[i] == 0 { if judge(base, i) { Answer = append(Answer, i) rec(i, memo) } } } } func judge(i, j int) bool { diff := StationList[j] - StationList[i] if diff < 0 { diff = StationList[i] - StationList[j] } if (Min <= diff) && (diff <= Max) { return true } else { return false } }