fbpx

Problema #1546 – mincifre – Rezolvari PBInfo

de Mihai-Alexandru

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.

#include <bits/stdc++.h>

using namespace std;
ifstream cin("mincifre.in");
ofstream cout("mincifre.out");
int main()
{
    char s[10001];
    int a[10001]={0} , n = 0;
    cin >> s;
    for(int i = 0 ; s[i] ; i++)
        a[++n]=s[i]-'0';
    sort(a+1 , a+n+1);
    int cnt =0 , nr = 0;
    while(a[++nr]==0) cnt++;
    cout << a[cnt+1];
    for(int i = 1 ; i <= cnt ; ++i)
        cout << a[i];
    for(int i = cnt+2 ; i <= n ; ++i)
        cout << a[i];
}
Comentarii

S-ar putea sa iti placa