fork download
  1. $/=$\;
  2. while(<>){
  3.  
  4. s/.*(F).*
  5. //;$f=@-[1];($%,$r)=map{y///c}/(.{0,$f})\bX+?\b(.*)$/;($a,$b)=map{y///c}/[^~]*^(?(?=(.{$%,$f}X)).{$f} *|.{$f} *X(.*)).{$r}
  6. /m;$a=$%if!$a||$b;$b+=$r;s/(?<=.{$a})\b *\b(?=.{$b})/"~"x length($&)/ge
  7.  
  8. }
Success #stdin #stdout 0s 6000KB
stdin
         F          
   X     X X        
X  X X  XX X  XX   X
XXXXXX XXXXXXXXXXXXX
stdout
   X     X~X        
X  X X  XX~X~~XX~~~X
XXXXXX XXXXXXXXXXXXX