http://acm.pku.edu.cn/JudgeOnline/problem?id=1207

Код:
#include <stdio.h>

int foo(int n)
{
    int c;
    for(c=1;n!=1;c++) {
        if(n&1) n=3*n+1;
        else n>>=1;
    }
    return c;
}

int main()
{
    int a,b,t,i,max,at,bt;
    while(scanf("%d %d", &a, &b)==2) {
        at=a;bt=b;
        if(a>b) {int tmp=a;a=b;b=tmp;}
        max=0;
        for(i=a;i<=b;i++) {
            t = foo(i);
            if(max<t) max=t;
        }
        printf("%d %d %d\n", at,bt,max);
    }
    return 0;
}