summaryrefslogtreecommitdiff
path: root/day2/invids.TXT
diff options
context:
space:
mode:
authorAndreas Grois <andi@grois.info>2025-12-04 00:13:00 +0100
committerAndreas Grois <andi@grois.info>2025-12-04 00:13:00 +0100
commit1edd26243bde242f0de78c947c94cf3d73e6070b (patch)
tree6ff0f51ecabc4fcf96f1b5428dbec492a4638429 /day2/invids.TXT
parentfd5a331808b6bec13ca4a7cdeee192da6c456184 (diff)
Day2
Diffstat (limited to 'day2/invids.TXT')
-rw-r--r--day2/invids.TXT53
1 files changed, 53 insertions, 0 deletions
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\