@name Day 4 @inputs @outputs @persist Lines:array Overlaps:number Overlaps2:number I:number Done:number @trigger runOnTick(100) runOnFile(1) if(first()){ print("load") fileLoad("input.txt") Overlaps = 0 I = 1 } if(fileLoaded() && Lines:count() == 0) { Data = fileRead() Lines = Data:explode("\n") #print(Data) } In = "2-4,6-8\n2-3,4-5\n5-7,7-9\n2-8,3-7\n6-6,4-6\n2-6,4-8" #Lines = In:explode("\n") #print(In) if(Lines:count() != 0 && Done == 0) { while(perf()) { #print(Lines[I, string]) V = Lines[I, string] Pair = V:explode(",") First = Pair[1, string]:explode("-") Second = Pair[2, string]:explode("-") L1 = First[1,string]:toNumber() R1 = First[2,string]:toNumber() L2 = Second[1,string]:toNumber() R2 = Second[2,string]:toNumber() Ol = (L1 <= L2 && R1 >= R2) || (L2 <= L1 && R2 >= R1) if(Ol) { #print(Pair, "overlap") Overlaps++ } Ol2 = (L1 <= R2 && L2 <= R1) if(Ol2) { #print(Pair, "overlap") Overlaps2++ } #print(D1, D2) I++ if(I > Lines:count() - 1) { Done = 1 break } } } print(Overlaps, Overlaps2, I)