Cod sursa(job #946019)

Utilizator Stefex09Stefan Teodorescu Stefex09 Data 3 mai 2013 17:29:25
Problema A+B Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream in ("adunare.in");
ofstream out ("adunare.out");

int A[32], B[32], Sol[32], Tr[32];

int main()
{
    int X, Y, a = -1, b = -1, i, Ans = 0;

    in >> X >> Y;

    while (X){
        A[++ a] = X & 1;
        X >>= 1;
    }

    while (Y){
        B[++ b] = Y & 1;
        Y >>= 1;
    }

    for (i = 0; i < 31; i ++){
        Sol[i] = A[i] ^ B[i] ^ Tr[i];
        Tr[i + 1] = ((A[i] | B[i]) & Tr[i]) | ((A[i] | Tr[i]) & B[i]);
    }

    /*for (i = 0; i < 31; i ++)
        cout << A[i] << " ";
    cout << '\n';

    for (i = 0; i < 31; i ++)
        cout << B[i] << " ";
    cout << '\n';

    for (i = 0; i < 31; i ++)
        cout << Sol[i] << " ";
    cout << '\n';*/

    for (i = 0; i < 31; i ++)
        Ans |= (Sol[i] << i);

    out << Ans;

    return 0;
}