Skip to content

Instantly share code, notes, and snippets.

@somebody1234
Created December 19, 2020 06:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save somebody1234/565359ca11ffcbd0f6866b2d680d6144 to your computer and use it in GitHub Desktop.
Save somebody1234/565359ca11ffcbd0f6866b2d680d6144 to your computer and use it in GitHub Desktop.
d={};
seq=(b,a)=>{
let its=b.split(' ').map(Number);
return(s,i=0,t=1)=>its.reduce((r,n,j)=>((a==8||a==11)&&j&&console.log('s',a,j,b.split(' ')[j]))||r!==null?d[n](s,r,t&&(j===its.length-1)):r,i)
}
alts=(b,a)=>{
let seqs=b.split(' | ').map(x=>seq(x,a));
return(s,i=0,t=1)=>seqs.reduce((r,m,j)=>((a==8||a==11)&&j&&console.log(a,j,b.split(' | ')[j]))||r===null?m(s,i,t):r,null)
}
[I,M]=`42: 9 14 | 10 1
9: 14 27 | 1 26
10: 23 14 | 28 1
1: "a"
11: 42 31
5: 1 14 | 15 1
19: 14 1 | 14 14
12: 24 14 | 19 1
16: 15 1 | 14 14
31: 14 17 | 1 13
6: 14 14 | 1 14
2: 1 24 | 14 4
0: 8 11
13: 14 3 | 1 12
15: 1 | 14
17: 14 2 | 1 7
23: 25 1 | 22 14
28: 16 1
4: 1 1
20: 14 14 | 1 15
3: 5 14 | 16 1
27: 1 6 | 14 18
14: "b"
21: 14 1 | 1 14
25: 1 1 | 1 14
22: 14 14
8: 42
26: 14 22 | 1 20
18: 15 15
7: 14 5 | 1 21
24: 14 1
abbbbbabbbaaaababbaabbbbabababbbabbbbbbabaaaa
bbabbbbaabaabba
babbbbaabbbbbabbbbbbaabaaabaaa
aaabbbbbbaaaabaababaabababbabaaabbababababaaa
bbbbbbbaaaabbbbaaabbabaaa
bbbababbbbaaaaaaaabbababaaababaabab
ababaaaaaabaaab
ababaaaaabbbaba
baabbaaaabbaaaababbaababb
abbbbabbbbaaaababbbbbbaaaababb
aaaaabbaabaaaaababaa
aaaabbaaaabbaaa
aaaabbaabbaaaaaaabbbabbbaaabbaabaaa
babaaabbbaaabaababbaabababaaab
aabbbbbaabbbaaaaaabbbbbababaaaaabbaaabba`.split('\n\n').map(s=>s.split('\n'));
I.map(s=>s.split(': ')).map(([a,b])=>{
let r=b.includes('"')?JSON.parse(b):null;
d[+a]=b.includes('"')?((s,i=0,t=1)=>(((s[i]===r)&&((i===s.length-1)||!t))?i+1:null)):
alts(b,a)
});
d[8]=alts('42 | 42 8',8);
d[11]=alts('42 31 | 42 11 31',11);
M.count(m=>d[0](m))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment