Cod sursa(job #25896)

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

int split(int A,int B);

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

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))+split(-666,666);
    else
   return add(A,B)+split(-666,666);
 }

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;
}