WN4L3KC6ZVJXOWAIUPVVRZN5GTXIGDJKBK2VNYG2ONEHE4FGPMMAC package mainimport ("bufio""fmt""log""os""strconv""strings")func main() {if err := realMain(); err != nil {log.Println(err)}}func realMain() error {data, err := parseInput()if err != nil {return err}accumulator, err := readCode(data)if err != nil {return err}log.Println(accumulator)return nil}func readCode(data []string) (int, error) {visited := map[int]bool{}var acc intfor i := 0; ; {if visited[i] {return acc, nil}visited[i] = trueline := strings.Split(data[i], " ")switch line[0] {case "nop":i++case "jmp":tmp, err := strconv.Atoi(line[1])if err != nil {return 0, err}i += tmpcase "acc":tmp, err := strconv.Atoi(line[1])if err != nil {return 0, err}acc += tmpi++default:return 0, fmt.Errorf("unrecognized instruction")}}}func parseInput() ([]string, error) {fd, err := os.Open("input.txt")if err != nil {return nil, err}defer fd.Close()ret := []string{}buf := bufio.NewScanner(fd)for buf.Scan() {ret = append(ret, buf.Text())}return ret, nil}
acc +40acc -14nop +386jmp +262acc -4nop +25jmp +500acc +13acc -1acc -7acc +37jmp +319acc +46jmp +429acc -4acc -8jmp +335acc +12jmp +78acc +16acc -11nop +137acc +41jmp +210jmp +83acc +7jmp +48nop +374acc +11jmp +268acc +1acc -17acc +15jmp +178acc +23jmp -5jmp +374acc +8acc +5nop +231jmp +1jmp -22acc +44acc +39jmp +415acc +44acc -8acc -10jmp +36nop +385acc +6jmp -37nop +245acc +5jmp +261acc -3jmp +23acc +37jmp +532acc -18acc -8nop +405jmp +499acc -1acc +3acc +47acc +38jmp +67jmp -9acc +16acc -4acc +23acc +6jmp -14jmp +229nop +235acc +3acc +17jmp +521acc +49acc -8acc +10jmp +103jmp +75acc +22nop +527acc +36acc +32jmp -46nop +434jmp +447jmp +159acc +37acc -19acc +39jmp +181jmp +1jmp +162jmp +1acc +0acc +0acc +34jmp +241acc +42acc +12jmp -75jmp -70acc +42acc -4acc +49jmp +456jmp +277jmp +302acc +45acc +19nop -41jmp +318jmp +153acc +9nop +323jmp -113nop -9jmp +1acc +37acc +12jmp +448acc +3acc +38jmp -114acc +7jmp +180acc -5acc -10jmp +117jmp +320acc +9jmp +330acc +18jmp +1jmp +330nop +450acc +10jmp +22acc +44jmp +298acc +38nop +433acc +1jmp +431jmp +339nop +251jmp -126nop +191jmp +294acc -7acc +30acc -15jmp +400jmp +441acc +5acc +17nop +35nop +103jmp +410nop -122acc +35jmp +73acc -13jmp +291acc -11jmp +95acc -12acc +19acc -16acc +34jmp +140acc -15acc +6acc -4jmp +190acc +11acc +0acc +19acc +43jmp +167acc +29nop +371jmp +1jmp -36acc +20acc +20acc +26jmp +374jmp -76acc +20jmp +115acc +13acc +25acc +39jmp -115acc -18nop -64jmp +133acc -18acc +32nop -198jmp -157acc +6acc +41nop +36jmp -136jmp +1jmp +41acc -14acc -17acc +1jmp +280jmp +1jmp +72acc +7jmp +1acc -12acc -8jmp +291acc -13acc +36acc +0jmp +97acc +20acc +0acc +12acc -16jmp -196nop +342jmp -122acc +21nop -33acc +38jmp +285acc -9acc -17acc -2acc +25jmp +232jmp +146jmp +312acc +11nop -54nop +351jmp -46acc +27jmp -244jmp +262acc +42acc +5nop +4acc +20jmp +239jmp -62nop -147jmp -169acc -12acc +40acc +29jmp +178nop +310jmp +49acc -18acc +5jmp +297jmp +244acc +31acc +21acc +47acc +41jmp +76acc +29acc +22acc +16jmp -121jmp -244acc +45acc -9acc +36acc +5jmp +265acc +13acc +47acc -11jmp +338acc +0jmp +85acc +18acc +27jmp +1acc +43jmp +227jmp +276acc +42nop +52acc -15nop +311jmp -199acc +45jmp +286acc -8acc +7acc +9acc -18jmp -273acc +50jmp +239nop +31acc +16jmp -162acc +12nop -204acc +27jmp -166acc -4acc +38acc +50nop +120jmp +243acc +29jmp -300acc +0nop +179acc -6jmp -136nop -305acc +15jmp -136acc -6jmp +172jmp +41acc -7nop +81jmp +199jmp +54acc +1acc +25jmp -283nop -132acc +47jmp +239acc +45acc -14acc +1acc +0jmp +10acc -15nop -338nop -257jmp +1jmp -218acc +36acc +33acc +28jmp -230acc -5acc -14jmp +1jmp -87acc +48nop +141nop +224acc +42jmp +22nop +140acc +16jmp +1acc +16jmp -92acc +37jmp -368acc +27jmp +155acc +11nop +196acc +5jmp -269nop -92jmp -276acc +46acc +6acc +34jmp -258jmp +2jmp +80jmp +36acc +20jmp -181nop -54acc +48nop +166nop +165jmp -263acc +47acc +33jmp +54nop -216acc +37acc +19jmp -349acc +12nop -156nop +7acc -5jmp -390acc -10jmp -315nop -393jmp -89jmp +1jmp -312acc +4jmp -120acc -2nop +23acc +42acc +28jmp -205acc +43acc +6jmp -49acc -13acc +1acc +10acc +19jmp -394acc -15acc +0jmp -365acc +23acc -17nop +23acc +0jmp -37acc +9acc +31jmp -7jmp -278nop +147acc +5acc +43jmp -149nop -65acc +19acc +46jmp +59acc +29nop +169jmp +131acc +43acc +50jmp +10acc -4jmp -390acc +24jmp -236acc +10acc +19nop -160acc +32jmp +162acc +29jmp +170jmp -14acc +36jmp -88acc +2acc +1acc +1jmp -86nop +48acc +21jmp -356acc +0nop -321nop -247nop +127jmp -279jmp +40acc +23acc +47acc +6jmp -438acc +26acc +35nop +120acc +2jmp -58acc +30acc +2jmp +42acc +8acc +24acc +9acc +19jmp -351acc +40acc +18acc +43acc +29jmp +9jmp +1jmp -210jmp -82acc +41acc +45jmp -28nop -395jmp +71acc +38acc -13nop -251acc -9jmp -366acc +34acc +7acc -7jmp -212acc +6acc +24acc +1acc -11jmp +94acc +20acc -14acc -5jmp +81acc +37jmp +77acc -15nop -486jmp +39jmp +1acc +39acc +49jmp -371acc +5nop -446jmp -267acc +39jmp +67acc +35acc +8nop -419jmp -53acc +20acc -9acc +46acc +30jmp -136acc +35jmp +56jmp +70acc +13acc +48jmp -290acc -18acc +48acc +50jmp -225jmp -226acc +34jmp -391acc +49nop -324acc -10acc +41jmp -130jmp +6jmp -555acc -17jmp -433acc +33jmp -64jmp -476nop -138nop -556acc +47jmp +27jmp -78acc -16acc -4acc -3acc +48jmp -292acc +43acc +3acc +44jmp +15acc +49acc +5acc +4acc +27jmp -491acc +6acc +38acc +31nop -70jmp -379acc +0acc +2acc +49jmp -297jmp -405jmp -72jmp -371jmp -115acc +7acc -15acc -9jmp -486acc +3acc +16nop -19acc +14jmp -296jmp -233acc +40nop -342nop -58acc -9jmp -316acc +4acc +15acc +14acc +50jmp -296acc -11acc +14acc +43acc +38jmp -391acc +43acc +25acc -5acc +27jmp +1
module maingo 1.17