fbpx

Problema #2442 – cifre006 – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Valentin, elev în clasa a V-a, e fascinat de cifre. Îi place să mute cifrele unui număr de pe o poziție pe alta. Astfel, pentru un număr N și o cifră k, mută toate cifrele egale cu k la început, după care așază celelalte cifre în ordinea în care apăreau în N. Desigur, există și situații în care numărul cifrelor lui N se micșorează sau situații în care numărul N nu se modifică.

Exemplu

cifre006.in

134112 1

cifre006.out

3
111342

Explicație

cifra 1 apare de 3 ori.
134112111342, cele trei cifre 1 se mută la început iar cifrele 3, 4, 2 se pun la sfârșit în ordinea în care au apărut în 134112.

#include <bits/stdc++.h>
using namespace std;
ifstream cin("cifre006.in");
ofstream cout("cifre006.out");
int main()
{
    int n , a[10] , p = 1 , k , cnt = 0 , nr = 0;
    cin >> n >> k;
    int aux = n;
    while(aux != 0)
    {
        if(aux % 10 == k) cnt++;
        aux /= 10;
    }
    cout << cnt << endl;
    for(int i = 0 ; i < cnt ; ++i) cout << k;
    while(n != 0)
    {
        if(n % 10 != k) a[p] = n % 10 , p++;
        n /= 10;
    }
    for(int i = p - 1 ; i >= 1 ; --i) cout << a[i];
    return 0;
}
Comentarii

S-ar putea sa iti placa