325
Se dă un vector cu n
elemente numere întregi.
Cerinţa
Să se ordoneze crescător elementele unui vector crescător după suma cifrelor.
Date de intrare
Fişierul de intrare sortcif.in
conţine pe prima linie numărul n
si pe a doua linie n
numere întregi separate prin spaţii.
Date de ieşire
Fişierul de ieşire sortcif.out
va conţine pe prima linie cele n
elemente ale vectorului, ordonate conform cerinței, separate printr-un spațiu.
Restricţii şi precizări
0 < n ≤ 100
- valoarea absolută a numerelor de pe a doua linie a fişierului de intrare va fi mai mică decât
2
30
.
Exemplu
sortcif.in
6 89 22 91 4005 51 721
sortcif.out
22 51 4005 91 721 89
#include <bits/stdc++.h> using namespace std; ifstream fin("sortcif.in"); ofstream fout("sortcif.out"); int sum(int n) { int s=0; while (n) { s+=n%10; n/=10; } return s; } int main() { int n; fin >> n; int a[1001]; int v[1001]; int p[1001]; for (int i = 0 ; i < n; ++i) { fin >> a[i]; v[i]=sum(a[i]); } sort(v,v+n); for (int i = 0 ; i < n ; ++i) { int cnt=0; for (int j = 0 ; j < n ; ++j) if (v[i]==sum(a[j]) && cnt==0 && p[j]!=a[j]) { fout << a[j] << ' '; cnt++; p[j]=a[j]; } } fin.close(); fout.close(); return 0; }
Comentarii