1207

いきなりショートコーディング:
155Bキターw 反則なのかどうなのかはおいといて、とりあえずコード。

a,b,m,p,q,n;
main(s){
    for(;~scanf("%d%d",&a,&b);m=0){
        for(p=a<b?a:b,q=a^b^p;p<=q;m=m<s?s:m,s=1)
            for(n=p++;n-1;s++)
                n=n&1?n*3+1:n/2;
        printf("%d %d %d\n",a,b,m);
    }
}

相変わらずショートコーディングの本は読めてないのであんまりレベルアップしてない。とりあえず今回思いついた手法メモ。

for (hoge;hoge;) for(hoge1,hoge2;hoge;hoge)
↓
for (hoge;hoge;hoge1 or hoge2) for(hoge2 or hoge1;hoge;hoge)

可能な場合このようにすると1B減らせる。

情報メモ

  • PKUではコマンドライン引数を渡さずに実行しているようで、mainの第一引数(argc)は1となる
  • mainの三番目以降の引数の値は未定
  • 1207の最初のテストケースは 1 1wwwwwwwwww

今回sがmainの引数となっているのは1で初期化する必要があったから。

後はどうやって減らせば良いんだー。疲れた。