From 1edd26243bde242f0de78c947c94cf3d73e6070b Mon Sep 17 00:00:00 2001 From: Andreas Grois Date: Thu, 4 Dec 2025 00:13:00 +0100 Subject: Day2 --- day2/invids2.TXT | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 day2/invids2.TXT (limited to 'day2/invids2.TXT') 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\ -- cgit v1.2.3