# PBinfo #3910 – Aranjamente1 – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: andrei

## Enunț

Cerința
Se citesc trei numere naturale a b n. Să se afișeze, în ordine lexicografică, șirurile cu n elemente distincte din mulțimea {a, a + 1, ..., b}.

Date de intrare
Programul citește de la tastatură numerele a b n.

Date de ieșire
Programul va afișa pe ecran șirurile cerute, fiecare pe câte o linie. Elementele fiecărui șir vor fi separate prin câte un spațiu.

Restricții și precizări

1 ≤ a < b ≤ 1.000.000.000
1≤ n ≤ b - a < 8

Exemplu:
Intrare

4 6 2
Ieșire

4 5 
4 6 
5 4 
5 6 
6 4 
6 5

## Cod sursă C++

```cpp
#include <iostream>
using namespace std;
int a , b , p , n , x[10];
bool OK(int k)
{
	for(int i = 1 ; i < k ; i ++)
		if(x[k] == x[i])
			return false;
	return true;
}
void Afisare()
{
	for(int i = 1 ; i <= p ; i ++)
		cout << x[i] << " ";
	cout << '\n';
} 
void Back(int k)
{
	for(int i = a ; i <= b ; i ++)
	{
		x[k] = i;
		if(OK(k))
		{
			if(k == p)
				Afisare();
			else
				Back(k + 1);
		}
	}
}
int main()
{
	cin >> a >> b >> p;
	n = b - a + 1;
	Back(1);
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/3910)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/3910/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-3910/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
