Cod sursa(job #739451)

Utilizator bogdan2412Bogdan-Cristian Tataroiu bogdan2412 Data 23 aprilie 2012 02:36:19
Problema A+B Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.44 kb
#include <cstdio>
#include <cassert>

using namespace std;

int main() {
    assert(freopen("adunare.in", "rt", stdin));
    assert(freopen("adunare.out", "wt", stdout));

    int A, B;
    assert(scanf("%d %d", &A, &B) == 2);
    int s = 0, t = 0;
    for (int i = 0; i <= 31; i++) {
        s |= (((A >> i) ^ (B >> i) ^ t) & 1) << i;
        t = ((A >> i) & t) | ((B >> i) & t) | ((A >> i) & (B >> i) & 1);
    }
    printf("%d\n", s);

    return 0;
}