Post History
Rust, 425 bytes |a:T|a.iter().any(|b|a.iter().any(|c|c!=b&&f(&a,&vec![*b],&vec![*c])));fn g(a:&T,b:&T,c:&T,e:(i8,i8))->bool{[(0,1),(1,0),(-1,0),(0,-1)].iter().an...
Answer
#1: Initial revision
# [Rust](https://www.rust-lang.org), 425 bytes ```rust |a:T|a.iter().any(|b|a.iter().any(|c|c!=b&&f(&a,&vec![*b],&vec![*c])));fn g(a:&T,b:&T,c:&T,e:(i8,i8))->bool{[(0,1),(1,0),(-1,0),(0,-1)].iter().any(|g|{let m=(e.0+g.0,e.1+g.1);a.contains(&m)&&!b.contains(&m)&&!c.contains(&m)&&f(a,&[vec![m],b.clone()].concat(),c)})}fn f(a:&T,b:&T,c:&T)->bool{if a.len()==b.len()+c.len(){b.len()>1&&c.len()>1}else{b.iter().any(|e|g(a,b,c,*e))||c.iter().any(|e|g(a,c,b,*e))}}type T=Vec<(i8,i8)>; ```` [Attempt This Online!](https://ato.pxeger.com/run?1=jVFLasMwEKXbQO9geyGkRDaW00Kw6_QSoZvghazKicGfkCiFYPsk3WTRLrot9DI9Tce_4JpSosXMaEaamffe69v-eFBfa8M05XOs4jwzqGY4tsOM4DPKtJTHGSZaMUmk0rb--1FF5uL75qPk7qrkVqzkHhOLZydchqO7KIXuhwhFGHGKXqTQ19Mw6CMREEI8mLDB3EUrGtZG1Ea6OF7QeEGIuQzzPCnW2KaMUMyoDdZsnU1NRoJfAzdlUW-Z-lha9mxj2VRaDDwjHrdEninAcsAoJQjp4TghRokIw9LrZtc0oPA8yTOJYSI8E1xhQgWpSAUAohGAfu040riVSKDP98M2mInWF919yRASfVjJ5CChMoQkS6CHhlTQqSSkLMUfVQH1ulpV6rST2sp_kuKho3Dp9Yrd7vZxppJMx0bhPlag8hY36IBJ-0Iua4iu6QZ5vIkG559_7PLDaex8IBOjzhU95p2Wf3e6a-x9l3eazKDrNa2dATinhzWpWlbO59b_AA) I'm not 100% clear on the challenge, but this seems to work