var input = require("fs").readFileSync("input.txt").toString().replace(/\r/g, ""); var devices = input.split("\n").filter((line)=>(line.indexOf("/dev/") != -1)).map((line)=>(line.match(/\/dev\/grid\/node-x([0-9]+)-y([0-9]+)[ ]+([0-9]+)T[ ]+([0-9]+)T[ ]+([0-9]+)T[ ]+([0-9]+)%/))).map((match)=>({ x: parseInt(match[1]), y: parseInt(match[2]), size: parseInt(match[3]), used: parseInt(match[4]), available: parseInt(match[5]), percentageUsed: parseInt(match[5]), })); console.log(devices); var pairs = []; for(var dev1 = 0; dev1 < devices.length; dev1++){ for(var dev2 = 0; dev2 < devices.length; dev2++){ if(dev1 != dev2){ if(devices[dev1].used > 0){ if(devices[dev2].available >= devices[dev1].used){ pairs.push([dev1, dev2]); } } } } } console.log(pairs.length);