diff options
| author | Andreas Grois <andi@grois.info> | 2025-12-02 23:25:07 +0100 |
|---|---|---|
| committer | Andreas Grois <andi@grois.info> | 2025-12-02 23:25:07 +0100 |
| commit | fd5a331808b6bec13ca4a7cdeee192da6c456184 (patch) | |
| tree | aad17bdeca7e75b2a7aed1455c598229fa43f58e /day1/part1.TXT | |
Day 1
Diffstat (limited to 'day1/part1.TXT')
| -rw-r--r-- | day1/part1.TXT | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/day1/part1.TXT b/day1/part1.TXT new file mode 100644 index 0000000..d4d93e3 --- /dev/null +++ b/day1/part1.TXT @@ -0,0 +1,38 @@ +\START92\
+\COMMENT=Single file dated Tue Dec 2 23:20:40 20
+\NAME=part1
+\FILE=day1.part1.92f
+(inp,position)
+Func
+Local pos1,pos2,curr,sig,direct,step,result
+0\->\result
+1\->\pos1
+While pos1<dim(inp)
+ inString(inp," ",pos1)\->\pos2
+ If pos2<1 Then
+ dim(inp)+1\->\pos2
+ EndIf
+ mid(inp,pos1,pos2-pos1)\->\curr
+ pos2+1\->\pos1
+ If dim(curr)=0 Then
+ continue
+ EndIf
+ left(curr,1)\->\direct
+ If direct="L" Then
+ \(-)\1\->\sig
+ ElseIf direct="R" Then
+ 1\->\sig
+ Else
+ Return {\(-)\1,position}
+ EndIf
+ expr(right(curr,dim(curr)-1))\->\step
+ mod(position+sig*step,100)\->\position
+ If position=0 Then
+ result+1\->\result
+ EndIf
+EndWhile
+
+Return {result,position}
+EndFunc
+
+\STOP92\
|
