# PBinfo #4048 – revector – Rezolvare C++

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

## Enunț

Cerința
Se dă un șir de \(n\) numere naturale \(a_1,a_2,\dots,a_n\). Asupra șirului se aplică următoarele operații în această ordine:


Se inversează prefixul \(a_1,a_2,\dots,a_{n-2},a_{n-1},a_n\);
Se inversează prefixul \(a_1,a_2,\dots,a_{n-2},a_{n-1}\);
Se inversează prefixul \(a_1,a_2,\dots,a_{n-2}\);
…
Se inversează prefixul \(a_1,a_2\).

Să se determine șirul după finalizarea operațiilor.

Date de intrare
Se citește numărul \(n\), iar apoi \(n\) numere naturale, separate prin spații.

Date de ieșire
Se afișează \(n\) numere întregi, reprezenând elementele șirului după finalizarea operațiilor.

Restricții și precizări

\(1 \le n \le 10^5\)
\(-10^9 \le a_i \le 10^9\)
Pentru 30 de puncte, \(n \le 10^3\)

Exemplu:
Intrare

5
6 2 1 3 3
Ieșire

1 3 2 3 6
Explicație
Iată elementele șirului după fiecare operație:


\(6,2,1,3,3\)
\(\underline{3,3,1,2,6}\)
\(\underline{2,1,3,3},6\)
\(\underline{3,1,2},3,6\)
\(\underline{1,3},2,3,6\)

## Cod sursă C++

```cpp
/**
 ____ ____ ____ ____ ____
||a |||t |||o |||d |||o ||
||__|||__|||__|||__|||__||
|/__\|/__\|/__\|/__\|/__\|
**/
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N_MAX = 100000;
int n;
int a[N_MAX + 2];
int b[N_MAX + 2];
int main () {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    cin >> n;
    for (int i = 1; i <= n; i++) {
        cin >> a[i];
    }
    int l = 1, r = n;
    for (int i = n; i >= 1; i--) {
        if ((n - i) % 2 == 0) {
            b[i] = l; l++;
        } else {
            b[i] = r; r--;
        }
    }
    for (int i = 1; i <= n; i++) {
        cout << a[b[i]] << " ";
    }
    cout << "\n";
    return 0;
}
```

## Resurse

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