summaryrefslogtreecommitdiff
path: root/day2/invids.TXT
diff options
context:
space:
mode:
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\