59 lines
947 B
Go
59 lines
947 B
Go
package main
|
|
|
|
import (
|
|
"bufio"
|
|
"fmt"
|
|
"math"
|
|
"os"
|
|
"strings"
|
|
)
|
|
|
|
func main() {
|
|
inp := strings.ToLower(StdinToString())
|
|
dirs := strings.Split(inp, ",")
|
|
var currX, currY, currZ int
|
|
var furthest float64
|
|
for i := range dirs {
|
|
switch dirs[i] {
|
|
case "n":
|
|
currY++
|
|
currZ--
|
|
case "ne":
|
|
currX++
|
|
currZ--
|
|
case "se":
|
|
currY--
|
|
currX++
|
|
case "s":
|
|
currY--
|
|
currZ++
|
|
case "sw":
|
|
currX--
|
|
currZ++
|
|
case "nw":
|
|
currY++
|
|
currX--
|
|
}
|
|
if math.Abs(float64(currX)) > furthest {
|
|
furthest = math.Abs(float64(currX))
|
|
}
|
|
if math.Abs(float64(currY)) > furthest {
|
|
furthest = math.Abs(float64(currY))
|
|
}
|
|
if math.Abs(float64(currZ)) > furthest {
|
|
furthest = math.Abs(float64(currZ))
|
|
}
|
|
}
|
|
fmt.Println(currY, currX, currZ)
|
|
fmt.Println("Furthest:", furthest)
|
|
}
|
|
|
|
func StdinToString() string {
|
|
var input string
|
|
scanner := bufio.NewScanner(os.Stdin)
|
|
for scanner.Scan() {
|
|
input = scanner.Text()
|
|
}
|
|
return input
|
|
}
|