Cod sursa(job #2222333)

Utilizator vadim171098vadim pislari vadim171098 Data 16 iulie 2018 21:25:59
Problema Generare de permutari Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include <fstream>
#define MAX 9
using namespace std;

void afisare (int n, int arr[MAX]){
    ofstream out;
    out.open("permutari.out");
    for (int i = 0 ;i != n ; i++){
        out<<arr[i]<<" ";
    }
    out<<endl;
}
int verificare(int k,int n, int arr[MAX]){
    for(int i = 0; i!= n; i++){
        if (arr[i] == k)return 1;
    }
    return 0;
}

void backtrack(int n, int ord, int arr[MAX]){
    if(ord == n){
        afisare(n,arr);
        return;
    }
    for(int i = 1; i <= n; i++){
        if(verificare(i,ord,arr))continue;
        arr[ord] = i;
        backtrack(n,ord+1,arr);
    }
}

int main()
{
    ifstream in;
    in.open("permutari.in");
    int nr, arr[MAX];
    in >> nr;
    backtrack(nr,0,arr);
    return 0;
}