spoj.pl/problems/ACPC10B/ can anybody give a test case where this fails i cudnt find any.thx
# include<stdio.h>
int main(){
long a,b,i,an,bn,ca,cb,af,bf;
int res[730],resa[730],resb[730],rem,processa,processb,found;
while(1){
scanf("%ld",&a);
if(a==0)
break;
scanf("%ld",&b);
if(a==b){
printf("%ld %ld 2\n",a,b);
continue;
}
for(i=0;i<730;i++){
res[i]=0;
resa[i]=0;
resb[i]=0;
}
af=a;
bf=b;
an=bn=0;
ca=cb=1;
processb=processa=1;
found=0;
if(a<730){
resa[a]=1;
res[a]=1;
}
if(b<730){
resb[b]=1;
res[b]=-1;
}
while(processa || processb){
while(a && processa){
rem=a%10;
an=an+rem*rem;
a/=10;
}
while(b && processb){
rem=b%10;
bn=bn+rem*rem;
b/=10;
}
if(processa){
if(res[an]==0){
res[an]=1;
ca++;
resa[an]=ca;
a=an;
an=0;
}
else if(res[an]==1)
processa=0;
else{
found=1;
resa[an]=ca+1;
i=an;
break;
}
}
if(processb){
if(res[bn]==0){
res[bn]=-1;
cb++;
resb[bn]=cb;
b=bn;
bn=0;
}
else if(res[bn]==-1)
processb=0;
else{
found=1;
resb[bn]=cb+1;
i=bn;
break;
}
}
}
if(found)
printf("%ld %ld %d\n",af,bf,resa[i]+resb[i]);
else
printf("%ld %ld 0\n",af,bf);
}
return 0;
}