diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index f6ce98a..8b26534 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -11,9 +11,8 @@
-
-
+
@@ -334,59 +333,59 @@
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
@@ -407,9 +406,30 @@
-
+
-
+
+
+
+
+
+
+ file://$PROJECT_DIR$/day23/day23.go
+ 40
+
+
+
+ file://$PROJECT_DIR$/day23/day23.go
+ 28
+
+
+
+ file://$PROJECT_DIR$/day23/day23.go
+ 34
+
+
+
+
\ No newline at end of file
diff --git a/day23/day23.go b/day23/day23.go
index d662dfa..b88a31e 100644
--- a/day23/day23.go
+++ b/day23/day23.go
@@ -17,27 +17,28 @@ func main() {
var cups = make(map[int]*Cup)
fmt.Println(input)
- for _, val := range input{
- number,_ := strconv.Atoi(string(val))
- cups[number] = &Cup{Number: number}
- }
- for id, val := range input {
- number,_ := strconv.Atoi(string(val))
- nextNumber, _ := strconv.Atoi(string(input[(id+1)%len(input)]))
- cups[number].Next = cups[nextNumber]
- }
-
var inputNumbers []int
for _, val := range input{
number,_ := strconv.Atoi(string(val))
inputNumbers = append(inputNumbers,number)
}
-
+ _, maxInput := minMax(inputNumbers)
+ length := len(inputNumbers)
+ for i := 0; i < 1000000-length; i++ {
+ inputNumbers = append(inputNumbers, maxInput+1+i)
+ }
+ for _, val := range inputNumbers{
+ cups[val] = &Cup{Number: val}
+ }
+ for id, val := range inputNumbers {
+ number := val
+ nextNumber := inputNumbers[(id+1)%len(inputNumbers)]
+ cups[number].Next = cups[nextNumber]
+ }
min, max := minMax(inputNumbers)
iteration := 0
currentCup := cups[inputNumbers[0]]
- for iteration < 100 {
- fmt.Println(currentCup.Number)
+ for iteration < 10000000 {
threeCupStart := currentCup.Next
threeCupEnd := threeCupStart.Next.Next
currentCup.Next = threeCupEnd.Next
@@ -60,13 +61,16 @@ func main() {
currentCup = currentCup.Next
iteration++
}
- s := ""
- cup := cups[1].Next
- for cup != cups[1] {
- s += fmt.Sprint(cup.Number)
- cup = cup.Next
- }
- fmt.Println(s)
+ fmt.Println("Fineshed")
+ firstCup := cups[1]
+ fmt.Println(firstCup.Next.Number)
+ fmt.Println(firstCup.Next.Next.Number)
+ //s := ""
+ //cup := cups[1].Next
+ //for cup != cups[1] {
+ // cup = cup.Next
+ //}
+ //fmt.Println(s)
}
func runRound(cups *[]int){