sub p{ print"@_\n"; (glob<>)[2]; } $|=<>; @k=0..99; for(0..49){ $d0=sprintf("%02d",$_*2); $d1=sprintf("%02d",$_*2+1); @kc=@k; while(1){ $mc=$kc[@kc/2]; $r=p+($d0)x$mc,($d1)x(100-$mc); last if $r!=1; $r=p+('??')x$mc,($d1)x(100-$mc); @kc=grep$r^$_<$mc,@kc; } ($d0,$d1)=($d1,$d0)if!$r; @k0=@kc[0..@kc/2-1]; @k1=@kc[@kc/2..$#kc]; while(@k0>1&&@k1>1){ $m0=$k0[@k0/2]; $m1=$k1[@k1/2]; $x=0; $r=p+($d0)x$m0,($d1)x($m1-$m0),($d0)x(100-$m1); if($r==1){ $x=1; $r=p+($d0)x$m0,('??')x(100-$m0); } @k0=grep$r==0^$_<$m0,@k0; @k1=grep$r==$x^$_<$m1,@k1; } while(@k0>1){ $m0=$k0[@k0/2]; $r=p+('??')x$m0,($d0)x(100-$m0); @k0=grep$r^$_<$m0,@k0; } while(@k1>1){ $m1=$k1[@k1/2]; $r=p+('??')x$m1,($d1)x(100-$m1); @k1=grep$r^$_<$m1,@k1; } @k=grep{$_!=$k0[0]&&$_!=$k1[0]}@k; @a[$k0[0],$k1[0]]=($d0,$d1); } print"@a\n";