# PBinfo #1546 – mincifre – Rezolvare C++

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

## Enunț

Cerința
Se dă numărul natural n și se cere să se afișeze cel mai mic număr natural format din cifrele sale. 

Date de intrare
Fișierul de intrare mincifre.in conține pe prima linie numărul n.

Date de ieșire
Fișierul de ieșire mincifre.out va conține pe prima linie numărul m, reprezentând cel mai mic număr ce se poate forma cu cifrele numărului din fișierul de intrare.

Restricții și precizări

Numerele citite vor avea cel mult 10.000 de cifre

Exemplu:
mincifre.in

321
mincifre.out

123
Explicație
Cel mai mic număr ce se poate forma cu cifrele 3, 2, 1 este 123.

## Cod sursă C++

```cpp
#include <fstream>
using namespace std;
int freq[12];
ifstream in("mincifre.in");
ofstream out("mincifre.out");
int main() {
    char cif;
    while (in >> cif) freq[cif - '0']++;
    bool adv = false;
    for (int i = 1; i <= 9 && !adv; i++) {
        if (freq[i]) { 
            out << i;
            freq[i]--;
            adv = true;
        }
    } for (int i = 0; i <= 9; i++)
        for (int j = 1; j <= freq[i]; j++)
            out << i;
    return 0;
}
```

## Resurse

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