# PBinfo #160 – inserareinainte – Rezolvare C++

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

## Enunț

Se dă un șir cu n elemente naturale.

Cerinţa
Să se insereze în șir înaintea fiecărui element pătrat perfect rădăcina sa pătrată.

Date de intrare
Programul va citi de la tastatură numărul n, apoi n numere naturale reprezentând elementele șirului.

Date de ieşire
Programul va afișa pe ecran elementele șirului obținut după inserare, separate prin câte un spațiu.

Restricţii şi precizări

1 ≤ n ≤ 25
elementele șirului vor fi cuprinse între 0 și 1.000.000

Exemplu:
Date de intrare

5
7 3 4 1 9
Date de ieșire

7 3 2 4 1 1 3 9

## Cod sursă C++

```cpp
#include <bits/stdc++.h>
using namespace std;
int main(){
    int n, v[100];
    cin >> n;
    for (int i = 1; i <= n; i++)
        cin >> v[i];
    for (int j = n; j >= 1; j--)
        if (sqrt(v[j]) == (int)sqrt(v[j])){
        for (int i = n; i >= j; i--)
            v[i + 1] = v[i];
        n++;
        v[j] = sqrt(v[j]);
    }
    for (int i = 1; i <= n; i++)
        cout << v[i] << " ";
    return 0;
}
```

## Resurse

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