Cod sursa(job #25924)

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

typedef unsigned long long lint;

lint split(lint A,lint B);

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

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

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

lint A,B;

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


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

return 0;
}