カメヲラボ

主にプログラミングとお勉強全般について書いてます

Joseph's Problem(2)

http://acm.pku.edu.cn/JudgeOnline/problem?id=2800
頑張って縮めたものの、これはダメじゃーと思っていたところにushiodaさんからのトラックバックがありました。
http://d.hatena.ne.jp/ushioda/20061117
102Bの最短コードが公開されています。

それから、コード短縮に関する解説はcolunさんの記事
http://d.hatena.ne.jp/colun/20061116#p1
が詳しいです。

ショートコーディングが流行りだしてもう1年になろうとしていますが、たくさんの超人が現れて、数多くのテクニックを生み出してきました。ホント、すばらしいです。

「それが何の役に立つんだ」

と言われることも多いかと思いますが、意味があろうが無かろうが短さを追求するのがショートコーダー。めげずに頑張ってください。私もまだまだ頑張ります。

あ、そだそだ。
最短ではないので公開しても仕方ないような気もしますが、一応私のコードも晒しておきます。
Cで109B

_int64 s,t;
main(n,k){
  for(scanf("%d%d",&n,&k);n+=t;s+=k/n*t*--t/2-k%n*t)
    t=(n-k%n-1)/~(k/n);
  printf("%I64d",s);
}

式の途中でデクリメントとか、全く酷いコードなので、まっとうなプログラマーになりたい少年は真似しちゃダメですよ。(とか、いちいち書いておかないといけない気が最近してきた・・・)