($n,$pa,$pb)=<>=~/\S+/g; @a=sort{$a<=>$b}<>=~//g; @b=sort{$a<=>$b}<>=~//g; sub f{ my@a=@{$_[0]}; my@b=@{$_[1]}; my$c=$_[2]; my$m="@a,@b,$c"; my$p=$$m; if(!defined $p){ if(@a==1){ $p=$c+($a[0]+$b[0])*($a[0]>$b[0]?1:-1)>0; }else{ my $qa=(1-$pa)/(@a-1); my $qb=(1-$pb)/(@b-1); for my$i(0..@a-1){ for my$j(0..@b-1){ $p+=($i?$qa:$pa)*($j?$qb:$pb)*f([@a[0..$i-1,$i+1..@a-1]],[@b[0..$j-1,$j+1..@b-1]],$c+($a[$i]+$b[$j])*($a[$i]>$b[$j]?1:-1)); } } } $$m=$p+0; } $p; } print f(\@a,\@b,0);