293
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
n
numere 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