Cod sursa(job #1023177)

Utilizator florin.elfusFlorin Elfus florin.elfus Data 6 noiembrie 2013 15:50:34
Problema A+B Scor 100
Compilator cpp Status done
Runda Lista lui wefgef Marime 0.51 kb
#include <stdio.h>

inline bool getBit(int x, int bit)
{
    if (x & (1 << bit))
        return 1;
    return 0;
}

int main()
{
    int A, B, bit, sol = 0, tr = 0;

    freopen("adunare.in", "r", stdin);
    freopen("adunare.out", "w", stdout);

    scanf("%d%d", &A, &B);
    for (bit = 0; bit < 31; bit ++)
    {
        sol = sol | (getBit(A, bit) ^ getBit(B, bit) ^ tr) << bit;
        tr = getBit(A, bit) + getBit(B, bit) + tr >= 2 ? 1 : 0;
    }

    printf("%d", sol);
    return 0;
}