这道题的数据好仁慈...
#include<cstdio>
#include<memory>
using namespace std;
int interg[1000001];
int main(){
int n,m,l,r,i,max,t;
while(scanf("%d %d",&l,&r)!=EOF){
t=0;
if(l>r) {t=l;l=r;r=t;}
max=0;
memset(interg,0,sizeof(interg));
for(i=l;i<=r;i++) if(!interg[i]) {
n=i;
while(n!=1){
if(n%2) n=n*3+1;
else n=n/2;
if(n<1000001) interg[n]=1;
}
}
for(i=l;i<=r;i++) if(!interg[i]) {
n=i;
m=1;
while(n!=1){
if(n%2) n=n*3+1;
else n=n/2;
m++;
}
max=max>m?max:m;
}
if(!t) printf("%d %d %d\n",l,r,max);
else printf("%d %d %d\n",r,l,max);
}
return 0;
}