diff options
| -rw-r--r-- | day2/contains.TXT | 17 | ||||
| -rw-r--r-- | day2/day2.contains.92f | bin | 0 -> 182 bytes | |||
| -rw-r--r-- | day2/day2.invids.92f | bin | 0 -> 840 bytes | |||
| -rw-r--r-- | day2/day2.invids2.92f | bin | 0 -> 952 bytes | |||
| -rw-r--r-- | day2/day2.part1.92f | bin | 0 -> 357 bytes | |||
| -rw-r--r-- | day2/day2.part2.92f | bin | 0 -> 358 bytes | |||
| -rw-r--r-- | day2/day2.repeats.92f | bin | 0 -> 253 bytes | |||
| -rw-r--r-- | day2/invids.TXT | 53 | ||||
| -rw-r--r-- | day2/invids2.TXT | 58 | ||||
| -rw-r--r-- | day2/part1.TXT | 24 | ||||
| -rw-r--r-- | day2/part2.TXT | 24 | ||||
| -rw-r--r-- | day2/repeats.TXT | 24 |
12 files changed, 200 insertions, 0 deletions
diff --git a/day2/contains.TXT b/day2/contains.TXT new file mode 100644 index 0000000..9e9acad --- /dev/null +++ b/day2/contains.TXT @@ -0,0 +1,17 @@ +\START92\
+\COMMENT=Single file dated Thu Dec 4 00:09:21 20
+\NAME=contains
+\FILE=day2.contains.92f
+(list,value)
+Func
+Local i
+For i,1,dim(list)
+ If list[i]=value Then
+ Return true
+ EndIf
+EndFor
+Return false
+
+EndFunc
+
+\STOP92\
diff --git a/day2/day2.contains.92f b/day2/day2.contains.92f Binary files differnew file mode 100644 index 0000000..1841e97 --- /dev/null +++ b/day2/day2.contains.92f diff --git a/day2/day2.invids.92f b/day2/day2.invids.92f Binary files differnew file mode 100644 index 0000000..7de16ed --- /dev/null +++ b/day2/day2.invids.92f diff --git a/day2/day2.invids2.92f b/day2/day2.invids2.92f Binary files differnew file mode 100644 index 0000000..e19ab40 --- /dev/null +++ b/day2/day2.invids2.92f diff --git a/day2/day2.part1.92f b/day2/day2.part1.92f Binary files differnew file mode 100644 index 0000000..0952f5b --- /dev/null +++ b/day2/day2.part1.92f diff --git a/day2/day2.part2.92f b/day2/day2.part2.92f Binary files differnew file mode 100644 index 0000000..c50a464 --- /dev/null +++ b/day2/day2.part2.92f diff --git a/day2/day2.repeats.92f b/day2/day2.repeats.92f Binary files differnew file mode 100644 index 0000000..fe575f1 --- /dev/null +++ b/day2/day2.repeats.92f diff --git a/day2/invids.TXT b/day2/invids.TXT new file mode 100644 index 0000000..4661847 --- /dev/null +++ b/day2/invids.TXT @@ -0,0 +1,53 @@ +\START92\
+\COMMENT=Single file dated Wed Dec 3 21:00:18 20
+\NAME=invids
+\FILE=day2.invids.92f
+(str)
+Func
+Local start,end,dims,dime,startn,endn,starte,ende,startne,endne,i,t,result
+
+inString(str,"-")\->\i
+left(str,i-1)\->\start
+right(str,dim(str)-i)\->\end
+
+0\->\result
+dim(start)\->\dims
+dim(end)\->\dime
+\(C)\ any uneven character id is valid
+If mod(dims,2)=1 Then
+ string(10^(floor(log(expr(start))+1)))\->\start
+ dim(start)\->\dims
+EndIf
+If mod(dime,2)=1 Then
+ string(10^(floor(log(expr(end))))-1)\->\end
+ dim(end)\->\dime
+EndIf
+
+
+If dims=dime and mod(dims,2)=1 Then
+ Return 0
+EndIf
+
+left(start,dims/2)\->\startn
+left(end,dime/2)\->\endn
+expr(startn)\->\startne
+expr(endn)\->\endne
+expr(start)\->\starte
+expr(end)\->\ende
+
+\(C)\ skip if end < last invalid
+If expr(end)<expr(startn&startn) Then
+ Return 0
+EndIf
+
+For i,startne,endne
+ string(i)\->\t
+ expr(t&t)\->\t
+ If t\>=\starte and t\<=\ende Then
+ result+t\->\result
+ EndIf
+EndFor
+Return result
+EndFunc
+
+\STOP92\
diff --git a/day2/invids2.TXT b/day2/invids2.TXT new file mode 100644 index 0000000..a4a031e --- /dev/null +++ b/day2/invids2.TXT @@ -0,0 +1,58 @@ +\START92\
+\COMMENT=Single file dated Thu Dec 4 00:09:27 20
+\NAME=invids2
+\FILE=day2.invids2.92f
+(str)
+Func
+Local start,end,dims,dime,startn,endn,starte,ende,startne,endne,i,j,t,result,dime0,dims0,end0,start0,seen
+
+inString(str,"-")\->\i
+left(str,i-1)\->\start0
+right(str,dim(str)-i)\->\end0
+
+0\->\result
+dim(start0)\->\dims0
+dim(end0)\->\dime0
+{}\->\seen
+For j,2,dime0
+ mod(dims0,j)\->\i
+ If i\!=\0 Then
+ string(10^(floor(log(expr(start0))+j-i)))\->\start
+ dim(start)\->\dims
+ Else
+ start0\->\start
+ dims0\->\dims
+ EndIf
+ mod(dime0,j)\->\i
+ If i\!=\0 Then
+ string(10^(floor(log(expr(end0)))-i+1)-1)\->\end
+ dim(end)\->\dime
+ Else
+ end0\->\end
+ dime0\->\dime
+ EndIf
+
+ left(start,dims/j)\->\startn
+ left(end,dime/j)\->\endn
+ expr(startn)\->\startne
+ expr(endn)\->\endne
+ expr(start)\->\starte
+ expr(end)\->\ende
+
+ \(C)\ skip if end < last invalid
+ If expr(end)\>=\expr(startn&startn) Then
+
+ For i,startne,endne
+ string(i)\->\t
+ expr(repeats(t,j))\->\t
+ If t\>=\starte and t\<=\ende and ?contains(seen,t) Then
+ augment(seen,{t})\->\seen
+ result+t\->\result
+ EndIf
+ EndFor
+ EndIf
+EndFor
+Return result
+EndFunc
+
+\STOP92\
diff --git a/day2/part1.TXT b/day2/part1.TXT new file mode 100644 index 0000000..82b0cda --- /dev/null +++ b/day2/part1.TXT @@ -0,0 +1,24 @@ +\START92\
+\COMMENT=Single file dated Wed Dec 3 21:00:53 20
+\NAME=part1
+\FILE=day2.part1.92f
+(str)
+Func
+Local p1,p2,dimstr,curr,result
+0\->\result
+1\->\p1
+dim(str)\->\dimstr
+
+While p1<dimstr
+ inString(str,",",p1)\->\p2
+ If p2\<=\0 Then
+ dimstr+1\->\p2
+ EndIf
+ mid(str,p1,p2-p1)\->\curr
+ p2+1\->\p1
+ result+invids(curr)\->\result
+EndWhile
+Return result
+EndFunc
+
+\STOP92\
diff --git a/day2/part2.TXT b/day2/part2.TXT new file mode 100644 index 0000000..3c606bc --- /dev/null +++ b/day2/part2.TXT @@ -0,0 +1,24 @@ +\START92\
+\COMMENT=Single file dated Thu Dec 4 00:10:11 20
+\NAME=part2
+\FILE=day2.part2.92f
+(str)
+Func
+Local p1,p2,dimstr,curr,result
+0\->\result
+1\->\p1
+dim(str)\->\dimstr
+
+While p1<dimstr
+ inString(str,",",p1)\->\p2
+ If p2\<=\0 Then
+ dimstr+1\->\p2
+ EndIf
+ mid(str,p1,p2-p1)\->\curr
+ p2+1\->\p1
+ result+invids2(curr)\->\result
+EndWhile
+Return result
+EndFunc
+
+\STOP92\
diff --git a/day2/repeats.TXT b/day2/repeats.TXT new file mode 100644 index 0000000..89bc52c --- /dev/null +++ b/day2/repeats.TXT @@ -0,0 +1,24 @@ +\START92\
+\COMMENT=Single file dated Thu Dec 4 00:10:23 20
+\NAME=repeats
+\FILE=day2.repeats.92f
+(s,i)
+Func
+Local j,t
+If i=1 Then
+ Return s
+ElseIf i=2 Then
+ Return s&s
+ElseIf i=3 Then
+ Return s&s&s
+ElseIf mod(i,2)=1 Then
+ floor(i/2)\->\j
+ repeats(s,j)\->\t
+ Return t&t&s
+EndIf
+repeats(s,i/2)\->\t
+Return t&t
+
+EndFunc
+
+\STOP92\
|
