package helper import ( "bufio" "log" "os" "path/filepath" "strconv" "strings" ) const INPUT_FILE = "input" func GetLines() *bufio.Scanner { wd, err := os.Getwd() filePath := filepath.Join(wd, INPUT_FILE) file, err := os.Open(filePath) if err != nil { log.Fatal(err) } return bufio.NewScanner(file) } func ReadLinesTwoIntSlices() (list_a []int, list_b []int) { scanner := GetLines() for scanner.Scan() { parts := strings.Fields(scanner.Text()) value_a, _ := strconv.Atoi(parts[0]) value_b, _ := strconv.Atoi(parts[1]) list_a = append(list_a, value_a) list_b = append(list_b, value_b) } return list_a, list_b } func ReadLinesToIntSlices() (lines [][]int) { scanner := GetLines() for scanner.Scan() { string_line := strings.Fields(scanner.Text()) int_line := make([]int, len(string_line)) for i, val := range string_line { int_line[i], _ = strconv.Atoi(val) } lines = append(lines, int_line) } return lines } func ReadLinesToStringSlices() (lines []string) { scanner := GetLines() for scanner.Scan() { lines = append(lines, scanner.Text()) } return lines } func ReadLinesToString() (line string) { scanner := GetLines() for scanner.Scan() { line += scanner.Text() } return line }