# PBinfo #162 – permcirc – Rezolvare C++

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

## Enunț

Pentru un șir dat, se numește permutare circulară spre stânga șirul obținut prin mutarea spre stânga a tuturor elementelor, cu excepția primului. Acesta va trece în locul ultimului. De exemplu, pentru șirul 1 2 3 4 5, permutarea spre stânga este 2 3 4 5 1. Observăm că dacă efecutăm suficiente permutări circulare spre stânga, șirul revine în forma inițială.

Cerinţa
Se dă un vector cu n elemente numere naturale. Determinați toate permutările circulare spre stânga ale vectorului.

Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spaţii, reprezentând elementele vectorului.

Date de ieşire
Programul afișează pe ecran, fiecare pe câte o linie, permutările circulare spre stânga ale vectorului, elementele fiecărei permutări fiind separate printr-un spațiu

Restricţii şi precizări

0 < n < 16
elementele vectorului vor fi cuprinse între -1000 și 1000

Exemplu:
Intrare

5
7 2 8 4 5
Ieșire

7 2 8 4 5
2 8 4 5 7
8 4 5 7 2
4 5 7 2 8
5 7 2 8 4

## Cod sursă C++

```cpp
#include <iostream>
using namespace std;
int n, v[100];
int main() {
    cin >> n;
    for (int i = 1; i <= n; i++) cin >> v[i];
    for (int p = 1; p <= n; p++) {
        for (int i = 1; i <= n; i++) cout << v[i] << " ";
        cout << endl;
        int temp = v[1];
        for (int i = 1; i < n; i++) v[i] = v[i + 1];
        v[n] = temp;
    } return 0;
}
```

## Resurse

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