Cod sursa(job #2979054)

Utilizator bogdan_raul55Bogdan Raul bogdan_raul55 Data 14 februarie 2023 19:02:46
Problema Generare de permutari Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.07 kb
#include <fstream>
#include <iostream>
using namespace std;

ifstream fin("permutari.in");
ofstream fout("permutari.out");
int v[12];
void afisare(int n){
    for(int i = 1; i <= n; i++){
        fout << v[i] << "  ";
    }
    fout << "\n";
}
int main()
{
    int n;
    fin >> n;
    for(int i = 1; i <= n; i++){
        v[i] = i;
    }
    int j;
    int ok = 0;
    do{
        afisare(n);
        ok = 0;
        for(int i = n; i >= 2; i--){
            if(v[i-1] < v[i]){
                ok = i;
                break;
            }
        }
        if(ok != 0){
            for(int i = n; i >= ok; i--){
                if(v[ok-1] < v[i]){
                    j = i; 
                    break;
                }
            }
            int aux = v[ok-1];
            v[ok-1] = v[j];
            v[j] = aux;
            
            int k = ok;
            int l = n;
            while(k < l){
                aux = v[k];
                v[k] = v[l];
                v[l] = aux;
                k++;
                l--;
            }
        }
    }while(ok != 0);
    return 0;
}