import fs from 'node:fs'; export default function runner(input: string) { fs.readFile(`./${input}`, 'utf8', (err, data) => { if (err) throw err; let count = 0; data.split('\n').forEach(line => { const spLine = line.split(' '); let safe = checkIsSafe(spLine) if(safe) count++ if(!safe){ let safeMinusOne = false; for(let j = 0; j index !== j); safeMinusOne = checkIsSafe(spLineF) } if(safeMinusOne) { safe = safeMinusOne count++ } } if (safe) console.log(`---- safe=${count} ----`) if (!safe) console.log("---- unsafe, even filtered ----") }) console.log(count) }) } function checkIsSafe(spLine:string[]){ let safe = true; let positive = undefined; if (!spLine[0] || !spLine[1]) throw new Error() for(let i = 0; i3 || i2-i1>3 || i2-i1 == 0) { safe = false; } if(i1-i2 > 0) { if(!positive && positive !== undefined){ safe = false; } positive = true; } if(i1-i2 < 0) { if(positive){ safe = false; } positive = false; } console.log(`i1: ${i1} | i2: ${i2} | diff: ${i1-i2} | safe: ${safe} | positive: ${positive}`) } return safe; }