Rezolvare completă PbInfo #196 Aranjamente

Cerinţa

Se citesc două numere naturale nenule n și k. Să se afişeze, în ordine lexicografică, aranjamentele de câte k elemente ale mulţimii {1,2,..,n}.

Date de intrare

Fişierul de intrare aranjamente.in conţine pe prima linie numerele n și k, separate printr-un spatiu.

Date de ieşire

Fişierul de ieşire aranjamente.out va conţine pe fiecare linie câte k valori, separate prin câte un spaţiu, reprezentând elementele unei aranjări.

Restricţii şi precizări

  • 0 < k < n < 9

Exemplu

aranjamente.in

4 2

aranjamente.out

1 2 
1 3 
1 4 
2 1 
2 3 
2 4 
3 1 
3 2 
3 4 
4 1 
4 2 
4 3 

Cum e corect?

cout < "As la info"; cout << "As la info"; cout >> "As la info";

Felicitări! Poți mai mult?

Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.

Greșit, dar nu-i bai!

Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.

Rezolvare

Iată rezolvarea de 100 de puncte pentru problema Aranjamente:

#include <fstream>
#include <iostream>
#include <cassert>

using namespace std;

ifstream fin("aranjamente.in");
ofstream fout("aranjamente.out");

int n , m , x[10], uz[10];

void afis(int n){
    for(int i=1 ; i<=n ; ++i)
        fout << x[i] << " ";
    fout << endl;
}

void back(int k){
    for(int i=1;i<=n;++i)
        if(uz[i]==0){
            uz[i] = 1;
            x[k]=i;
            if(k==m)
                afis(m);
            else
                back(k+1);
            uz[i] = 0;
        }
}

int main(){
    fin >> n >> m;
    back(1);
    return 0;
}

Atenție

Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa Adresa de email.

Rezolvarea problemei #196 Aranjamente

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #196 Aranjamente de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.

Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!