403
Cerinţa
Să se ordoneze crescător elementele pătrat perfect ale unui şir dat, fără a afecta elementele care nu sunt pătrat perfect.
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, separate prin spaţii, cele n elemente ale vectorului, după sortare.
Restricţii şi precizări
1 ≤ n ≤ 1000- cele
nnumere citite vor fi mai mici decât 50000
Exemplu
Intrare
8 9 15 16 4 5 1 7 9
Ieșire
1 15 4 9 5 9 7 16
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin >> n;
int a[1001];
for(int i = 1; i <= n; ++i)
cin >> a[i];
for(int i = 1; i <= n; ++i){
int r = sqrt(a[i]);
if(r * r == a[i]){
int min = 10000000, poz = 0;
for(int j = i; j <= n; ++j){
int r1 = sqrt(a[j]);
if(r1 * r1 == a[j] && a[j] < min)
min = a[j], poz = j;
}
swap(a[i], a[poz]);
}
}
for(int i = 1; i <= n; ++i)
cout << a[i] << " ";
return 0;
}
Comentarii