fbpx

Problema #2195 – sumpow2 – Rezolvari PBInfo

de Mihai-Alexandru

Orice număr natural nenul se poate scrie în mod unic ca o sumă de puterile ale lui 2 care nu se repetă. Exemplu: 77 = 20 + 22 + 23 + 26.

Exemplu

sumpow2.in

acdg ac

sumpow2.out

beg

Important!

Programul scris trebuie să calculeze șirul de ieșire fără a transforma șirurile inițiale în numere!

#include <bits/stdc++.h>
using namespace std;

ifstream cin("sumpow2.in");
ofstream cout("sumpow2.out");

int f[27];

int main()
{
    char s1[200] , s2[200];
    cin >> s1 >> s2;
    int i = 0;
    while(s1[i]!='\0')
    {
        f[(int)s1[i]-96]++;
        i++;
    }
    i=0;
    while(s2[i]!='\0')
    {
        f[(int)s2[i]-96]++;
        i++;
    }
    for(int i = 0 ; i < 25 ; ++i)
    {
        while(f[i]-2 >= 0)
            f[i]-=2 , f[i+1]++;
        if(f[i]==1)
            cout << (char)(i + 96);
    }
    for(int i = 0 ; i < f[25] ; ++i)
        cout << 'z';
    return 0;
}
Comentarii

S-ar putea sa iti placa