1;                              # no es un fichero de función

function adaptacion = calculaAdaptacion1(disposicion)
  nRei = length(disposicion);
  d1 = d2 = zeros(1,2*nRei-1);  # recuentos por diagonales
  for i = 1:nRei
    d1(i+disposicion(i)-1)++;
    d2(i-disposicion(i)+nRei)++;
  endfor
  adaptacion = 0;
  for i = 1:2*nRei-1
    adaptacion += max(0,d1(i)-1) + max(0,d2(i)-1);
  endfor
endfunction

function adaptacion = calculaAdaptacion2(disposicion)
  nRei = length(disposicion);
  d1 = d2 = zeros(1,2*nRei-1);  # recuentos por diagonales
  for i = 1:nRei
    d1(i+disposicion(i)-1)++;
    d2(i-disposicion(i)+nRei)++;
  endfor
  adaptacion = sum(max([zeros(1,2*nRei-1); d1-1]) + max([zeros(1,2*nRei-1); d2-1]));
endfunction