| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- package main
- import (
- "bufio"
- "fmt"
- "log"
- "os"
- "strconv"
- )
- func main() {
- nb_occ_zero := 0
- lock_num := 50
- direction := 1
- var nb_ticks int
- var instruction string
- f, err := os.Open("1/input")
- if err != nil {
- log.Fatal(err)
- }
- defer f.Close()
- scanner := bufio.NewScanner(f)
- // We read input line by line
- for scanner.Scan() {
- instruction = scanner.Text()
- switch instruction[0] {
- case 'L':
- direction = -1
- case 'R':
- direction = 1
- default:
- panic("unrecognized instruction")
- }
- nb_ticks, err = strconv.Atoi(instruction[1:])
- if err != nil {
- log.Fatal(err)
- }
- lock_num = (lock_num + direction*nb_ticks) % 100
- if lock_num < 0 {
- lock_num = lock_num + 100
- }
- if lock_num == 0 {
- nb_occ_zero++
- }
- }
- if err = scanner.Err(); err != nil {
- log.Fatal(err)
- }
- fmt.Println(nb_occ_zero)
- }
|