package utils import ( "bufio" "log" "os" "strconv" "strings" ) func ReadLines(fileName string) []string { result := []string{} file, err := os.Open(fileName) if err != nil { log.Fatal(err) } defer file.Close() scanner := bufio.NewScanner(file) for scanner.Scan() { result = append(result, scanner.Text()) } if err := scanner.Err(); err != nil { log.Fatal(err) } return result } func ParseIntArray(s string, sep string) []int { result := []int{} var vals []string if sep == " " { vals = strings.Fields(strings.TrimSpace(s)) } else { vals = strings.Split(strings.TrimSpace(s), sep) } for _, val := range vals { n, _ := strconv.Atoi(val) result = append(result, n) } return result } func ParseInt64Array(s string, sep string) []int64 { result := []int64{} var vals []string if sep == " " { vals = strings.Fields(strings.TrimSpace(s)) } else { vals = strings.Split(strings.TrimSpace(s), sep) } for _, val := range vals { n, _ := strconv.ParseInt(val, 10, 64) result = append(result, n) } return result } func IntPow(x int, y int) int { result := 1 for i := 0; i < y; i++ { result *= x } return result } func Int64Pow(x int64, y int64) int64 { result := int64(1) for i := int64(0); i < y; i++ { result *= x } return result }