Pagini recente » Cod sursa (job #305149) | Cod sursa (job #469010) | Cod sursa (job #917597) | Cod sursa (job #346268) | Cod sursa (job #2192683)
import java.io.*;
import java.util.Scanner;
public class Main {
static PrintWriter printWriter;
public static void main(String[] args) throws FileNotFoundException {
Scanner scanner = new Scanner(new FileReader("permutari.in"));
int n = scanner.nextInt();
scanner.close();
printWriter = new PrintWriter("permutari.out");
generatePermutations(n);
printWriter.close();
}
static int[] arr;
static void generatePermutations(int n) {
if (n < 1 || n > 8) {
throw new IllegalArgumentException("invalid argument: " + n);
}
arr = new int[n];
solveFor(0);
}
static void solveFor(int index) {
for (int i=0; i<arr.length; i++) {
if (alreadyUsed(i, index)) {
continue;
}
arr[index] = i;
if (index == arr.length-1) {
printSolution();
} else {
solveFor(index+1);
}
}
}
static boolean alreadyUsed(int value, int upToIndex) {
for (int i=0; i<upToIndex; i++) {
if (arr[i] == value) {
return true;
}
}
return false;
}
static void printSolution() {
for (int i=0; i<arr.length; i++) {
printWriter.printf("%d ", arr[i]+1);
}
printWriter.println();
}
}