Cod sursa(job #2679253)

Utilizator mstevanStevan mstevan Data 30 noiembrie 2020 00:56:44
Problema Generare de permutari Scor 80
Compilator java Status done
Runda Arhiva educationala Marime 1.56 kb
import java.util.*;
import java.io.*;

class Main {
    private static boolean [] globalarraynotavailable;
    private static int [] globalarraypermutations;
    private static int n;
    private static PrintWriter writer;

	public static void main(String []args) {
        File inputFile = new File("permutari.in");
        File outputFile = new File("permutari.out");

        try {
            FileInputStream inputStream = new FileInputStream(inputFile);
            Scanner scanner = new Scanner(inputStream);
            n = scanner.nextInt();
            inputStream.close();

    		    FileOutputStream outputStream = new FileOutputStream(outputFile);
            writer = new PrintWriter(outputStream);
            globalarraynotavailable = new boolean[n];
            globalarraypermutations = new int[n];

            backtracking(0, n);

            writer.close();
            outputStream.close();
        } catch(IOException e) {

        }
	}

	public static void backtracking(int i, int n){
	    if (i == n){
	        printit();
	        return;
	    }
      for (int j = 0; j < n; j++){
        if (globalarraynotavailable[j])
          continue;

        globalarraypermutations[i] = j + 1;
        globalarraynotavailable[j] = true;
        backtracking(i + 1, n);
        globalarraynotavailable[j] = false;
      }
	}

	public static void printit(){
	    boolean skip = true;
	    for (int i = 0; i < n; i++){
        if (!skip){
          writer.print(' ');
		    }
        writer.print(globalarraypermutations[i]);
		    skip = false;
      }
      writer.print('\n');
	}
}