👤

Pentru un numar natural n dat gasiti numarul natural minim m format cu aceleasi cifre. Ex. n=3658, m=3568.

Răspuns :

Pentru ca nu ai specificat cat de mare este nr natural...am considerat un numar mare de 10000 de cifre, iar numarul il citesc dintr-un fisier text ca in problema mincifre de pe pbinfo. Solutia de mai jos rezolva problema ta la caz general.

#include <bits/stdc++.h>
using namespace std;
char s[10020];
int n, i, v[10], a, val, p;
int main()
{
    ifstream f("mincifre.in");
    ofstream g("mincifre.out");
    f.getline(s, sizeof(s));
    for(i = 0; i < strlen(s); i ++)
    {
       val = s[i] - '0';
       v[val] ++;
    }
    if(v[0] > 0) for(i = 1; i <= 9; i ++)
         if(v[i] > 0)
        {
            g << i;
            v[i] --; break;
        }
    for (i = 0; i <= 9; i ++)
     while (v[i])
    {
        g << i;
        v[i]--;
    }
    return 0;
}