Cod sursa(job #780899)

Utilizator elfusFlorin Chirica elfus Data 22 august 2012 21:27:05
Problema A+B Scor 100
Compilator cpp Status done
Runda Lista lui wefgef Marime 0.46 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;
}