import java.io.*;
class AchtDamenProblem
{
static int damen=8; // damenanzahl
static boolean[] zeileFrei;
static boolean[] steigDiagFrei;
static boolean[] fallDiagFrei;
static int[] posInSpalte; // merken, wo man ist
static int loesungsAnzahl=0;
static void initArrays()
{ zeileFrei = new boolean[damen+1];
steigDiagFrei = [b]new boolean[2*damen];[/b]
fallDiagFrei =[b] new boolean[2*damen+1];[/b]
posInSpalte = new int[damen+1];
// Erst mal alles auf true, d.h. alles frei
for (int i=1; i<=damen; i++) zeileFrei[i] = true;
for (int i=1; i<=[b]2*damen-1;[/b] i++) steigDiagFrei[i] = true;
for (int i=2; i<=2*damen; i++) fallDiagFrei[i] = true;
for (int i=1; i<=damen; i++) posInSpalte[i] = 0;
} // initArrays
static void loesungAusgeben()
{ for (int spalte=1; spalte<=damen; spalte++)
//System.out.print(posInSpalte[spalte]);
//System.out.print(" ");
loesungsAnzahl++;
} // loesungAusgeben
// TEILE WURDEN ENTFERNT DAS ES ÜBERSICHTLICHER IST!!
static boolean nichtBedroht(int x, int y)
{ return (zeileFrei[y] &&steigDiagFrei[damen+y-x] &&fallDiagFrei[x+y]);
} // nichtBedroht
public static void main(String[] arg)throws IOException
{ System.out.println("Das Programm bestimmt alle Loesungen des N-Damen-Problems.");
System.out.print("Wie viele Damen sollen gesetzt werden? ");
damen = io.readInteger();
initArrays();
probiereDameZuSetzen(1); // 1. Dame in 1. Spalte setzen
System.out.println();
System.out.println("Es ergaben sich "+loesungsAnzahl+" Loesungen.");
} // main
} // class Damen