import { Solver, State } from "./solver.ts"; const input = await Deno.readTextFile("input.txt"); const lines = input.split("\n").map(x => x.trim()).filter(x => x.length > 0); function repeatArray(s: T, n: number): T[] { let ret = []; for (let i = 0; i < n; i++) { ret.push(s); } return ret; } const datas = lines.map(x => { const [statesStr, groupsStr] = x.split(" "); const copies = 5; return { state: repeatArray(statesStr, 5).join("?").split(""), group: repeatArray(groupsStr.split(",").map(x => parseInt(x)), 5).flat() }; }) const ways = datas.map(data => { const ret = new Solver(data.state as State[], data.group).solve(0, 0); console.log(data.state.join(""), data.group, ret); return ret; }); console.log(ways.reduce((a, b) => a + b, 0));