fbpx

Problema #1923 – egale – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Afişaţi, în ordine crescătoare, toate numerele dintr-un anumit interval care au toate cifrele egale.

Exemplu

egale.in

1
8 30

egale.out

8 9 11 22

egale.in

2
2

egale.out

1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99
#include <bits/stdc++.h>

using namespace std;

ifstream fin("egale.in");
ofstream fout("egale.out");

int main() 
{
    int op;
    fin >> op;
    assert(op == 1 || op == 2);
    if (op == 1) {
        long long a, b;
        fin >> a >> b;
        assert(a <= b);
        long long curr = 1;
        while (curr <= b) {
            for (int i = 1; i <= 9; ++i)
                if (a <= i*curr && i*curr <= b)
                    fout << i*curr << " ";
            curr = curr*10 + 1;
        }
        fout << "\n";
    }
    else {
        int x;
        fin >> x;
        assert(x <= 100);

        for (int nrCif = 1; nrCif <= x; ++nrCif) {
            for (int cif = 1; cif <= 9; ++cif) {
                for (int i = 1; i <= nrCif; ++i)
                    fout << cif;
                fout << " ";
            }
        }

        fout << "\n";
    }

    return 0;
}
Comentarii

S-ar putea sa iti placa