Cod sursa(job #739451)
| Utilizator | 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;
}
