Cod sursa(job #2418905)

Utilizator ileanapopa11Popa Ileana ileanapopa11 Data 6 mai 2019 19:23:30
Problema Generare de permutari Scor 0
Compilator java Status done
Runda Arhiva educationala Marime 1.52 kb
import java.io.*;
import java.util.*;

public class Permutari {

    public static void getPerm(Integer nr, LinkedHashSet<Integer> perm, List<LinkedHashSet<Integer>> allPerm){
        if(perm.size() == nr){
            allPerm.add(perm);
        }

        for(Integer elem = 1; elem < nr + 1; elem++){
            if(!perm.contains(elem)) { // elem not already in LinkedHashSet
                LinkedHashSet<Integer> newPerm = new LinkedHashSet<>(perm);
                newPerm.add(elem);
                getPerm(nr, newPerm, allPerm);
            }
        }
    }

    public static void main(String[] args){
        File inFile = new File("permutari.in");
        Integer nr = -1;
        try{
            Scanner sc = new Scanner(inFile);
            nr = sc.nextInt();
        }
        catch(FileNotFoundException e){
            e.printStackTrace();
        }

        LinkedHashSet<Integer> perm = new LinkedHashSet<>();

        List<LinkedHashSet<Integer>> allPerm = new ArrayList<>();
        getPerm(nr, perm, allPerm);

        try {
            FileWriter fw = new FileWriter("permutari.out");
            PrintWriter pw = new PrintWriter(fw);

            Iterator<LinkedHashSet<Integer>> it = allPerm.iterator();
            while(it.hasNext()){
                for(Integer i: it.next())
                    pw.print(i + " ");
                pw.println();
            }

            pw.close();
        }
        catch(IOException e){
            e.printStackTrace();
        }

    }
}