($n,$d,$k)=glob<>; @x=<>; for$i(0..0x1ffff){ $x0=$x[$i<<1|0]; $x1=$x[$i<<1|1]; $x[$i|0x20000]=$x0<$x1?$x0:$x1; } sub f{ my($i,$j)=@_; #print("f($i,$j)"); my$b=1e9; if($i&1){ $b=$x[$i++]; } if(!($j&1)){ $b=$x[$j] if $b>$x[$j]; --$j; } if($i<$j){ $i=0x20000|$i>>1; $j=0x20000|$j>>1; $b1=f($i,$j); $b=$b1 if $b>$b1; } $b; } #print">>",f(0,1),$/; #print">>",f(1,2),$/; #exit(1); $b=0; for$i(0..$n-1){ $z=f($j=$i-$d<0?0:$i-$d,$i); #print"$i:$z\n"; $c=$x[$i]- f($j=$i-$d<0?0:$i-$d,$i); $b=$c,$j0=$j,$j1=$i if $b<$c; #print"$b\n"; } if($b){ print $b*$k,$/,$j0,$",$j1; }else{ print 0; }