Cod sursa(job #25887)

Utilizator crawlerPuni Andrei Paul crawler Data 4 martie 2007 15:53:35
Problema A+B Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <stdio.h>

int split(int A,int B);

int add(int A,int B)
 {
  if((A == 0)&&(B == 0)) 
   return 0;
     else
  if(B != 0)
   return 1 + add(A,B-1);
    else
   return split(B,A);
 }

int split(int A,int B)
 {
  int aux = (A + B), aux2= aux & 1;
  aux>>=1;
  A=aux;
  B=aux+aux2;
  if(A>0 && B>0)
   return add((A>>1),(B>>1))+add((A>>1)+(A&1),(B>>1)+(B&1));
    else
   return add(A,B);
 }

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

int A,B;

scanf("%d%d", &A,&B);


printf("%d\n", split(A,B));

return 0;
}