# PBinfo #130 – sortcif – Rezolvare C++

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

## Enunț

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 230.

Exemplu:
sortcif.in

6
89 22 91 4005 51 721
sortcif.out

22 51 4005 91 721 89

## Cod sursă C++

```cpp
#include <bits/stdc++.h>
using namespace std;
ifstream in("sortcif.in");
ofstream out("sortcif.out");
int n, v[105];
int sumacifre(int n) {
    int S = 0;
    while (n != 0) {
        S = S + n % 10;
    	n = n / 10;
    } return S;
} bool sortarecifre(int nr1, int nr2) {
    return sumacifre(nr1) < sumacifre(nr2);
} int main() {
    in >> n;
    for (int i = 0; i < n; i++) in >> v[i];
    sort(v, v + n, sortarecifre);
    for (int i = 0; i < n; i++) out << v[i] << " ";
    return 0;
}
```

## Resurse

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