Informatică, întrebare adresată de caeriugabi, 9 ani în urmă

Un număr natural x, format din exact două cifre, este numit sub-număr al unui număr natural y dacă cifrele lui x apar, în aceeași ordine, pe ranguri consecutive, în numărul y. Să se determine, pentru mai multe numere date, sub-numerele care apar de cele mai multe ori în scrierea acestora.


AntiEaglesDavids: da un exemplu

Răspunsuri la întrebare

Răspuns de AntiEaglesDavids
2
#include <bits/stdc++.h>
using namespace std;

unsigned n, m, lg;
string x, s, subnr;
set<string> sol;

int main()
{
    cin >> n;
    for(int i = 1; i <= n; i++, m = 0, sol.clear()) {
        cin >> x;
        lg = x.length();

        for(unsigned j = 0, asubnr = 0; j < lg - 1; j++, asubnr = 0) {
            for(unsigned k = 0; k < lg - 1; k++)
                if((x.substr(j, 2) == x.substr(k, 2)) && k != j)
                    asubnr++;
            subnr = x.substr(j, 2);

            if(asubnr > m) {
                m = asubnr;
                sol.clear();
                sol.insert(subnr);
            }
            else if(asubnr == m)
                sol.insert(subnr);
        }
        cout << x << " are subnumerele maxime: ";
        for(const auto & s : sol)
            cout << s << ' ';
        cout << '\n';
    }

    return 0;
}


Alte întrebări interesante