Cod sursa(job #3367564)

Utilizator BogdanTudoseTudose Bogdan Cristian BogdanTudose Data 8 octombrie 2026 17:32:36
Problema Problema Damelor Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.37 kb
#include <iostream>
using namespace std;

int main()
{
    long long n, k;
    cin >> n >> k;

    // Numarul de cifre ale lui k
    int c = 0;
    long long x = k;

    while (x > 0)
    {
        c++;
        x /= 10;
    }

    // Pastram cifrele lui n intr-un vector
    int v[11];
    int nr = 0;

    x = n;

    while (x > 0)
    {
        v[nr] = x % 10;
        nr++;
        x /= 10;
    }

    // Cifrele au fost obtinute invers
    // Le inversam
    for (int i = 0; i < nr / 2; i++)
    {
        int aux = v[i];
        v[i] = v[nr - 1 - i];
        v[nr - 1 - i] = aux;
    }

    // Construim cel mai mare numar cu c cifre
    long long maxim = 0;
    int poz = 0;

    for (int cate = 0; cate < c; cate++)
    {
        // Trebuie sa alegem o cifra astfel incat
        // sa mai ramana suficiente cifre dupa ea.
        int limita = nr - (c - cate);

        int ceaMaiMare = -1;
        int pozMax = poz;

        for (int i = poz; i <= limita; i++)
        {
            if (v[i] > ceaMaiMare)
            {
                ceaMaiMare = v[i];
                pozMax = i;
            }
        }

        maxim = maxim * 10 + ceaMaiMare;
        poz = pozMax + 1;
    }

    if (maxim <= k)
        cout << "nu\n";
    else
        cout << maxim - k << '\n';

    cout << maxim << '\n';

    return 0;
}