PWNUVAP6KBIFKLI4CWKPBNEHA3U2QHNQV3JSNCITOXAUEPKVLMQAC package mainimport "core:os"import "core:fmt"import "core:strings"import "core:strconv"Range :: struct { // Inclusivestart: int,end: int,}rangeFront :: proc(range: Range) -> Range {return { range.start, range.start + ((range.end - range.start) / 2) };}rangeBack :: proc(range: Range) -> Range {return { range.start + ((range.end - range.start) / 2) + 1, range.end };}rangeLower :: rangeFront;rangeUpper :: rangeBack;calculateSeatId :: proc(row, col: int) -> int {return (row * 8) + col;}main :: proc() {input, err := os.read_entire_file("input.txt");inputStr := string(input);lines := strings.split(inputStr, "\n");highestSeatId: int;//seats: [128][8]bool = {};seats: [128 * 8]bool = {};//seats[0] = { true, true, true, true, true, true, true, true };//seats[127] = { true, true, true, true, true, true, true, true };for line in lines {line := strings.trim_space(line);rowRange := Range { 0, 127 };colRange := Range { 0, 7 };index := 0;for c in line {if index <= 6 {switch c {case 'F':rowRange = rangeFront(rowRange);fmt.println("F", index, rowRange);case 'B':rowRange = rangeBack(rowRange);fmt.println("B", index, rowRange);}} else {switch c {case 'L':colRange = rangeLower(colRange);fmt.println("L", index, colRange);case 'R':colRange = rangeUpper(colRange);fmt.println("R", index, colRange);}}fmt.println("");index += 1;}row := rowRange.start;col := colRange.start;seatId := calculateSeatId(row, col);//seats[row][col] = true;seats[seatId] = true;if seatId >= highestSeatId do highestSeatId = seatId;}fmt.println(highestSeatId);//fmt.println(seats);for i := 1; i < len(seats) - 1; i += 1 {if seats[i - 1] == true && seats[i] == false && seats[i + 1] == true {fmt.println(i + 1);return;}}}
BFBBBBFRLLFBFBFFBRLLBBFBBFBLRLBFFFBBFLLRBFFFFBBLRLBFBBFBFRRLFBBFBFBRRRFFBFBFFRLRBBBFFBFLLLBFFBBBBRRLBBFBFFFRRRFBFFFFFRLLBFBFBBFLRLBFBFBFBLRLBFFFBFFLLLBBFBBBFRRLFBFFBBFRRRFFBBBFFRRLBFBBBBBLLLFBFBFFBLLLBBFBFBBLRRBFFFFFBRLLBFBFBBFRLRBBFFBBFRRLFBBBFBBRLLBFFBBFBRRRBFBFBBFLLLBBFFBBBRLRFBFFFFBRRLBFFFBFBRRLFFFBBBBLRRFFBFFBBRRRFFFBFBFRLLFFFBBFFRRLBFFBFBBRRLFBBBFBBLRRBBBFFBBRRRFBFFFFBLLRFFFBFFFLLLBFFFBBBRRLBFFFFBFLRLFFFBFBFRLRBFFBBBFLRLBBBFBFFLRLFBBFBBBLRLFBFFBBBRLLBFBFFFBLRRFBBFFFBLLLBFBFBFFRRRBBFBFBBRRRBFBBBFBRRRFBFBFFFLLRFBBFFBFLRRFBFBBBBLRLBBFFBFBRLLFBFBFBFRRRFFBBBFBRLLBBBFFBBRLLBBFBBFBRRRFFBBFBFLLRFBFBFBFRRLBFFBFBBLLRFFBBFFFLLRBBFFFFFLLLBBFBBBBLLRFBBBBFBRLLBFBBBBBLLRFBBBBFBRRRBFFBFBFLRLFFBFBFBLRRFFBBBFFRLRBBFBBBBRRRFFBBBBFLLLBFBFFBBRLRBFFFBFBLLLBBFFBFBRRLFFBFFBBLRRFFFBBBBLLRBFBBBBFRRLBFBFBBFLLRBBFFFBFRRRBFFBBFFLRLFFBFBBBRRLBFFBFFFRRRBBFBFBBRRLBFBBBFFRLRFFBFFBFLLLFFFBFFBRRRFBFFBBFRLLBBBFBFFLLRFFBBFBFLRRFBFBBBFRLLFBBFFFBLLRFFBFBFFRLLBBFBFFFRRLBFBFBFFLRLBFBBFBFRLLBFFFBBBRLLBFFFFFBRRLFFFFBBBLLLBBFBBBFRRRFBBBFBFLRLBBBFFBFRRLFBBFBBBRLRFBBFFBFLLLBFBFBBBLLLFBFFFFBLLLFFBFFBFRLRFBFFFBFLRLFFBBFFBRRRFBBBFBFRLLBFFBFFBLLRBBFFBBFRLLFFBFBBFLLRBFBBFBFRRRFFBBBFBLLRBBFBFFFRLRBFBBFBFLLLBBBFFFFRRRFBFBFBBRLRBFFFBBBLRLFBBBFFBLRLBFBFBFFLLLFBFBFFFRLLFFBBBBBLRLFFBBBBBRLLFBFBFBFRLLFBBFFBFRRLBFFBBBBRRRBBFFFBFRLRBBFBBFBLLRFFFBFFBRLLBBFFBFFRLRFBBBFFBRLLBBFFFBBRRRFBBFBBFRRLBBFBBFFLRRFFFBFFBLRLBFFBBFBLRRFFBBBBFLRRBBFFFBBRLLFFFBFFBLLLBFFFFBBLLRFFBBFBBLRLFBBFBFBLRRFFFFBBBLRLBFBFBFBRLLFFBFFBBRLLFFFBFBFLLLFBBFFFFRRRFFFBFBBLLRBBFFBFFRRLFFBFBBFRRLBFFBFFFLLLBFFBFFBRLLBBFFBFBRRRBFFBBBBLRLFBFFFBBLLRBBFFFFFLRRFBBBFBFLLRFFBFBBFLLLBFFBFFBRRRBBFFBBBRRRFBFFFBBLRLFBFBFBBLLRBBFFFBBLLLFBBFBFFRRRBFFFBBBRRRFFFFBBBLLRFFBBBFBRLRFBFFBFFRLRFBFBFFFLRLBBFBFFFLLRFFBFFFBLRLFBFFFFFRRLFBBBBBBLRRFBFBBBBRRRFBBBFFBLLLBBFBFFFLLLBFFFBBFRLLFFBBFFFRRLFBFFFFFLRRFFFBFBFRRLBFBBFBFRLRBFBBFFBRLRBBFFBFBLRRBFBBBFFLRLBFFFFBBRLRBBFFBBBLLLBFBFBFBRRLFBFFBFBLRRFFFBFBFRRRBBFFBFFLRRFBBFBFBRLLBFFFFBFLLLFFBBFBBLLLFFBFFFBRRRBFFBFBFRLLFBFFBBFRRLBFFBFFFLRLFBFBBFBLLLBFFBFBBLLLFBFFBFBRRRFFBBFFFLLLBBFBBBBLRRFFBFFFBLLLFBBBFBFLRRBFFBBBBRLLBFBFBBBLRLBBFBBFBLRRFBBBFFFLRLBBFBFBFLLRFFFBFFBLLRFFFBFBFLRLFFBFBBFRLLFBBBBBBLRLFFBFFBBLLLFBBBBBFLRRFBBBFBBRRRBBFBFFBLLRBFBFFBBLRLBFBFFFFLRLBFFFFFBLLLFBFFBBBRRLFFBBBFBRRRBFFFBFFLLRFBBBBFBLLLFBBFFBBRRLBBFFFBBLRRFBFBFBBLRLFBBBFBBLLLFBBFBFFLLLBBFBBFBRRLFBFBFFFLRRBBBFBFFLLLBBFBBFFLLRBBFBFFBRRLFFBFFFFLLLBBFFFBBLRLFBBFBFBLLRFBFBFFBLRRBBFFFFBRRRBFBBBFFRLLBBFBFBFLRRFFBFFBBLRLFFFBBFFRRRFBFBBFBRLLFBBFFBBRRRFBFFBFBLLLFFBFFBBLLRFBBFBFFLRLBFFFFBBLRRFBBFBFBRLRBFFFFBFLRRFFFBBBBLRLFBFFBFFLLLBFBBBBFLRLBFFFBBFLRRBFFFBFFRLRBBFFFFFLLRFFBBBBFRRRBFBFFBFLRRFFBFFFBLRRBBFBBFFRRLFBFBFBBLRRBBFFBBFLRLFBFBBFFLLLBFBFBFFRLLBBFBBBFRLLFFBFBFBLLRFBFBFBFLLRBFBBFFBRRRFFBBBFBLRRFBFBFFFLLLBFFFFFFRRLBFBFFFBRLLFBFFBBBLLRFFFFBBBRLRBFFBBBBLLRFFBFFBFRRRFBFBBBBRRLBFBFBFBLRRFBFBBFFRLLBFFBFBFLLLFBBBFFBRRLBFBFFBBLLLBFBBFBFLRLFBFBFFBRLRBFBFBFFLRRFFBBFFBLRLFFFBBBFRLLBBFFBBFLRRFBFBBFFRRLBFFBFBBLRLFBBBFBFRRLFFBFFBFLLRFBFFFBBRLRBBFFBBBLRRBBFBFBFRLLFBFBBBBLLLBFFFFFFRLLFFBFFFBRLRBFFFFBFRRRBFBFFBBLLRBFFBBBFRRRBFBFFFBRRLFBBBFFFRRRBBFBBBBRRLFBBFFFFRRLFFBFFFFRLRBFFFFFFLLLFFBFBBFLRLFFFBBFBRLLFFFBFBBRRLFBBBBFBLLRFBFFFBFRRLBFFBBBBLRRFBFFFFFLRLFFFBBFFLRRBBFFFFFRLLFBBBFFFLLRBFFBBFBLLRBBFBBBFLRLFBFBFFBRRLBBFFBFBRLRFBFFBFBRRLFFBFFBBRLRFBBBBBFRRRFFBFFFFRRRBFBBBFBLLRFBFBFBFRLRBFBBBFBRLLFBFBBFFLRRBFBFBFBRLRFBFBBBBLRRBFBBFFFLLRBFBFBBFRRLFBFBBFBLLRFFFFBBBRRRBFBBBFBLLLBFBFFFFRRRFBBFFFBRRLFFBFBFBRRRFFBBFBBRLLBFFBFFFRRLBBFFFFFRLRBFFFBBBLRRFFBBFBBRRRFFFBBFBLLRFFBFBFFLRRBBBFFFFLRLFFFBFFBRLRFFFBFFFLRRFFBFBFFLLRFBBBFBBRLRFBBFBBBRLLBBBFFBFRLRFBBBBFBRLRBFBBBBFLRRFBBBFBFRLRFFBFBFFRRLFBBBFFFLRRBFFBBFBRLLFBFFFBBRLLFBFBBBBRLLBBBFFBFRRRBFBBFFBLRLBBBFFFBRLRBBFBBFBRLRBBFBBBBLRLBBFFFBBRLRBFFBBFBLLLBFFBFBFRLRFFBBBBBLLLBFFFFFBLRLBFBBFFBLLLBFFBBFFLRRBFFBBFFRRLBFFFFFFLLRFBBFBBFRLRFBBBBFFRLRBBFFFBFRLLBBBFFFBLLRFFFBBBFRRRBFBBFFBRRLFBBBBFFRLLBFFFFFFRLRFBBFBBFLRRBFBFFFFLLLBFBFFBBRLLBFBBBFBRLRBBFFFFFLRLBFBBFFBRLLBFBFBFBRRRBBBFFBBLLLBBFFFBFLRLFBFFFBBRRLFFBFBBBLRRBFFFBBBRLRBBFBFBBLLLFFBFBFFRRRBFFFFFFRRRFBBBFFBRRRBFBBBBBLRRFBBBFFFRLRBBFBBBFRLRBFFFFFBLLRFBBBBBBLLRFFBFBBBRRRFBFFBBBRLRFBFFBBFLLLBFBBFBFLRRFFFBBFBLRLBBFFFBFLLRBBFBFBBRLLBBFBBFBLLLFFBBBBFRLRBBFFFFFRRRFBBBBBBRRLBFFBBFFRLLFBFBFFBLLRFFBBBBFLLRFFBFBBBRLLBFBBFFFLRRBFFFBBBLLRBFFFBBFLRLBFFBFBFRRLFFBFBFBRRLBBBFFFFLRRFBBFFBBRLRFFBBFBFLRLFFFBBBFLLLFFBFBBFRLRBBBFFFFRLLBFBBBFBRRLFBBBBFBLRLFBBFFBFRRRBFBBBBBRLLBFFBBBFLLLBFFBBBFRRLFBFBBBFLRRBBFBFFBRRRFBFBBFBRLRBFBFFBFRLLFBFBFBBRLLBFBBFBBRRRFFBBFBBLLRFBFBFBFLLLFBFBBBFLLRBFBBBFFRRLBFBFBBFLRRFBFBFBFLRLBFBBFBBLRLBFFFFBBLLLBFFFFBBRRLBFBFBFFRLRBBFFBBBRLLFBFBBFBLRLFBFBBFFLLRBFBBFBBRRLBFFFFFBRLRBBFFFFBLLLFFFBFBBRLRFFBBFFFLRLBFFBBFBRRLFBFBFFBRRRBBFFBFFRRRFBBBFFFRRLBFFBBFBRLRBBBFFBFLRRBBBFFBBRRLFFFBFFFLRLBBFFFFFRRLBBFFBBFLLRFBBFBFFRLLBBFFFFBLRLFFBBBFFRLLBBBFFFFRRLFFBBFBFRRRBFFFFBBRRRFFFBBBBRLLBFBBFFBLLRBBBFFFFLLRBBFFBFFLLLFFBFBFBLLLFFBFFFFLRLFBBFBBBRRLFFFFBBFRRRFBFBFBFLRRFFBFFFFLRRBFBBBFFLLRFBFBFFFRRRBFBBBBFLLLBFFBFFBLLLFBFBFBBLLLFFFBBBFRLRBFFFBFFRRLBFBBFBBLLLFFFBFFFRRRFBFBBBBLLRFFBBFFBRLRFBBBFBFRRRFFBBFFFRLLBBFBFFFRLLBBBFFFBRRRBBFBBBBRLRFBFBFFFRLRFFFFBBBRRLFFBFFFFRLLBFFFBFBRRRFFBBBFFLLRBFFBFFFLRRFFBFBFBLRLFBFFBFFRLLBFBFBBFRRRFBBFBBBLLLFBBBFFBRLRFBFFFBFLRRBFBBFBFLLRFFBBBFBLRLFFBBFBFRRLFBBFBBBLRRFFBBFFBLLLFFFBFBBLRRBFBFFFFLLRBBFFBBFRLRBFBFFFBRRRFBFFFFBRLLFBBBFFFRLLBBFBBFBRLLFFFFBBBLRRBBFBFFFLRLFBBBBBFRRLBFBBBBBRRRBFFBFFBLRRFBBFBBFLRLBFFBBFFRRRFBBBFFFLLLFFFBBBBLLLBBFFBBBLLRBFBBBFFRRRBFBFFFBLRLFBFFBFBLRLFBFFFFFLLLBBBFFBBRLRFBBBBFFLRRBFBBBFBLRLFFFBBBBRLRBFFFBFBLRRFBFFFBFLLRBBBFFFBLRLBFBFFFFRRLBFFFFBBRLLBFFFBFFLRRFBBFFBBLRLFFBBBBBRRLFBBFFFFLRLFFBBFBFRLLFFBFBBBLLLFFBFFBFLRRFBBFFBFRLRFFBBBFBLLLFBBFFBBRLLBFFBFBBRRRBFFFBFFLRLFBFFFBFRLRFBFBBFFRRRFBBFBBFLLRFFBBBBBLLRBBFBFFBRLLBFBBBBBLRLBBFBFFBLRRBFBFBFFLLRBFFBFFFRLLFBFBBFBRRLBBBFFBFLRLBFBFFFBLLLBFBFBBBRRRFFFBBFBLLLFFFBFFFLLRFBFBBBFRLRFBBBBBFLRLBFFFBFFRLLBFBFFBBLRRBFFFBBFLLLFBFFBFBRLLFBBBBBFLLRBFFBBFFRLRFFFBBBFLRLFFFBBFBRLRFFBBFBBLRRFFFFBBBRLLFFFBBFBLRRFFBBBFFLRLFBFFBBBLLLFBFBBFBRRRBFBFBBBLLRBBFFFFBLLRFFBFFBFRRLBFBFFFFRLRBBFBFBFRRLFBBBFBBLRLBBBFFFBRRLBFFBFBFLRRBBFFBFFLRLFBBFFBFLLRFBBFFBFLRLBBFFBFBLRLBFFBFFFRLRFFFBFFFRRLFBBFBFFRRLFBBBFFBLRRFFBBFFFRRRBBFFFBFLRRFBFFBBFRLRFBBBFBBRRLFBBFFFBLRRBBFBBBFLLRBBFBBFFRLLBBFBFBBRLRBFFFFBFRRLBFBFBBBRRLBFBFFBFLRLFFBFBBFLRRBBFBFFFLRRBBFBFBFLLLFBFBBBFRRLBBFFFFBLRRBBFFBFFRLLBBFFFFBRLRFBFFFBFRLLFBFBBBBRLRBBFFBBBLRLBBFBBBBRLLFBFFFFBLRLBFBFBBFRLLFBFFBFFLLRFFFBBFFLLLBFBBFFFRLLBFFFFBFRLRBFBBBBFRRRFBBFFBBLLLFBFFBFBRLRBFFBFBFRRRFBFFFFBLRRBFBBBBFLLRBFFFBFBLRLBBFBFFBLRLFBBBFFBLLRFFBFBBBLLRBBBFFBBLRLBBFFBFFLLRFFBBFFFLRRFBFBFBBRRRBFFFFFBRRRBFBFBFBLLLBFFFBBFRRLFBBBBFFLRLFBBFFFBLRLBFBFFFFLRRBFBBBFFLRRFBBFFFFLLRFBBFBBFRLLFFBFBFBRLLFBFFFBBLRRBBFFBBFRRRBFFBBBFRLRBBFBFFBLLLFFBBFBBRLRFFFBFBFLLRBFBBFFBLRRFFBFFBBRRLBBBFFBBLRRFFBBFFBLLRBFFBBBFRLLFBFBFFFRRLFBBBBFBRRLBFBBBBFRLRBFFBBFFLLLFFBFBBFRRRFBFBFFBLRLFFFBFFBLRRBFFBFFFLLRFBFFBBBRRRFBFFBFBLLRFBFFFBBLLLBBFBFBBLLRFBFBBBFRRRFBFBBFFLRLFBFFFBFLLLFFFBFFBRRLFFFBBBBRRRBBFFBBBRRLFFFBBFBRRRFFBFBFFLRLFFBBBBBLRRFBFBBBFLLLFFBBFFBRLLBFFBFFBRRLBFBBBBBRLRBBFBBBFLLLFFBFFFBLLRFFBFFBFRLLFFFBBBFLLRFFBFBBBRLRBFBFBBBRLLBFFBBBBRLRFBBBBFFRRLFFFBBFFRLRBBFFBFBLLLBBBFFBFLLRFFBBBBFRLLBBFFBFBLLRBFBFBBBRLRFFBFFFFRRLBFBFFFFRLLBBBFFFFLLLBFFBBFFLLRFBBFBFFLLRFFBFBFBRLRFBBBBBFRLLFBBFFFBRLRBBFFFBBLLRBFFBFBBRLRFFFBFBBRLLBFBBFFFRRLBBFBFBFRRRFFFBFBFLRRBFBBFFFLLLBFFFFBFLLRBBBFFFBLRRBFBFBBBLRRBFFFBBFRRRBFBFFBBRRRBBBFFFBRLLFBFFFFFRLRBFFBFFBRLRBBFBBBFLRRBBBFFFBLLLFFFBFFFRLLFBBFBFBLLLBFBBFBBRLLBFBFFBFRRLFBFBFBBRRLBFFBBBBLLLFFFBFBBRRRFFFBBFBRRLFBBBBBBRLRFFBBBBBRLRBFBFBFFRRLFFBBFFBLRRBFFFBFBRLLFBBFBFBLRLFFBFFBFLRLFBFFFFBRRRFFBBFBFRLRFBFFBBBLRLFBFFBBFLLRFFBBFFBRRLBFFFFFBLRRBFBFFFBRLRFFBBBBFLRLBFBFBFBLLRFFFBBBFRRLFBBFBBBLLRFBFFFFFLLRFBBBBBFRLRBFBFFBFRLRBFFBBBFLRRFBFFBFFLRRBBFBFBFLRLFFBFBBBLRLBFBBFFFLRLBFFFBFBRLRFBBFFFFLRRFBBFFFFRLRFBBFFBBLLRFBBBBBBRLLBFBFFBBRRLBBFFFBFRRLBFFBFBBLRRFBFFBBFLRRBBFBBFFRRRBBFBFBFRLRFBFBBFFRLRFFFBBBBRRLBBFFFFBRRLFFBFFFBRLLBFFFBFBLLRBFFBBFBLRLFBBFBBBRRRFBFFBFFRRLFBFFFFFRRRBFFFBBFRLRFFFBFFFRLRFFBBBFBRRLFBBFBFBRRLBFFBFBBRLLBBFFBBFLLLFFFBBFFLRLBFFBBBFLLRFBBFBFFLRRBBFBBFFRLRBFBFFBFLLRFBFFBBBLRRBFBBFBBLRRFFFBFBBLRLBBBFFBFRLLBBFFFBFLLLBFBFFBFRRRFFFBBBFLRRBBFFFBBRRLFFFFBBFRRLFBBFFFBRRRFBBBFBFLLLFBFBBFBLRRFBBBFBBLLRFBFBBBFLRLBBFFFFBRLLFBBBBBBRRRBFBBBFFLLLBBFBFBBLRLBFFFFBFRLLFBFFBFFRRRBBFBBBBLLLBBBFFBBLLRFBBBBFFRRRFBBFBBFRRRFBFFFBBRRRBBFBBFFLRLBBBFFFFRLRFBBBBFBLRRFFBBFBBRRLFFFBBFFLLRBFBBFFFRLRBFFFBBBLLLBFBBFFFRRRFFBFBFFLLLFBBFFFBRLLFFBBFBFLLLFBBFFBFRLLBFBFFBFLLLFBFFFFBRLRFFBBBFFRRRFBBFFBBLRRBFFBFBFLLRFBBBBBFLLLBFFBFFBLRLFFBBBBFRRLBFBBBFBLRRFBBBBFFLLLBBFBFFBRLRBFBBFBBRLRFBBBBFFLLRFBFFFBFRRRFBBBBBBLLLBBFBBFFLLLBFBBFBBLLRFBBFBFFRLRFBBFFFFRLLFBFFBBFLRLFFFBBFFRLLBFBFFFBLLRFFBBBFFLLLFBBFBBFLLLFFBBBBBRRRBFFFBFFRRRFBFFBFFLRLFBBFFFFLLLFFBFFFBRRLBFBBBBBRRLFFBBFFFRLRBFFFFFFLRLFFBBBFFLRRFFFBFBBLLLFFBFFFFLLR
let part1 (arr: int list) = query {for a in arr dofor b in arr dofind (a + b = 2020)}let part2 (arr: int list) = query {for a in arr do
let part1 (arr: int list) = query {for a in arr dofor b in arr dofind (a + b = 2020)}let part2 (arr: int list) = query {for a in arr do
let v = part1 arr |> tupleToArray2 |> Array.reduce (*)printfn "%d" vlet v2 = part2 arr |> tupleToArray3 |> Array.reduce (*)printfn "%d" v20
let v = part1 arr |> tupleToArray2 |> Array.reduce (*)printfn "%d" vlet v2 = part2 arr |> tupleToArray3 |> Array.reduce (*)printfn "%d" v20