I get wrong answer from both online judges.
#include <stdio.h>
int main(int argc, char * argv[])
{
long long i=0;
long long j=0;
long long p=0;
long long q=0;
long long larger;
long long smaller;
long long cycle_length=1;
long long max_cycle_length=1;
while (scanf("%lld %lld",&p,&q) !=EOF)
{
/*check validity of input*/
if (p <= 0 || p >= 1000000 || q <= 0 || q >= 1000000) continue;
max_cycle_length=1;
if (p > q)
{
larger = p;
smaller = q;
}
else
{
larger = q;
smaller = p;
}
for (i=smaller;i<=larger;i++)
{
cycle_length = 1;
/*printf("i = %lld\r\n",i);*/
j = i;
while (j > 1)
{
/*printf("j = %lld\r\n",j);*/
if ((j % 2) == 0)
{
j = j / 2;
}
else
{
j = 3*j + 1;
}
cycle_length++;
}
if (cycle_length > max_cycle_length)
max_cycle_length = cycle_length;
/*printf("cycle_length = %lld\r\n", cycle_length);*/
}
printf("%lld %lld %lld \r\n",p,q,max_cycle_length);
}
return 0;
}