C

Over print

Over print 終了。 JavaScript xulapp さんの解。 for(a=[];s=readline();print(a.join('')))for(i in s)a[i]=a[i-s[i]]||s[i]の a[i-s[i]]の部分がみごと。i は数値とすると、 i - ' ' ==> i i - 'a' ==> NaNなので、a[NaN] は undefined となり、結局、s[i…

ひさびさのゴルフ

2月下旬からかなり忙しかった。休日出勤したのも久しぶりだ。この日記もひと月空いてしまった。あと、もう少し。4月になれば少し楽になると思う。 さて、いくつかゴルフの話題を。 shell game EASY C 単独トップを取れたのはうれしいが、それよりも、この…

最近のあなごる問題

Spiral Fixed なかなか難しい問題だった。どうアプローチするのが最善なのかわからない。私は以下の方法で解いた。他の人の解は結局調べていない。 05 15 25 35 45 55 04 14 24 34 44 54 03 13 23 33 43 53 02 12 22 32 42 52 01 11 21 31 41 51 00 10 20 30…

Ellipse circumference

楽しみにしていた Ellipse circumference が公開になった。まったくかなわなかった notogawa さんの C の解。 float x,a,b; main(n){ for(;~scanf("%f%f",&a,&b);printf("%.f\n",x)) for(n=4e3;--n;)x=a*6.2832+(n-2+.75/n)/n*(1-b*b/a/a)*x; }これ、すごい…

Heavy Rotation

Heavy Rotation 終了した。C トップ nai さんの解は、基本的にはShifting Pattern Fixed by nai さんと同じ strncat() かぁ。しかし、うまくまとめるなぁ。nai さんには、かなわない。C 2 位の inaniwa さんの解もすごいと思う。変数名に、A/K/B を使うとこ…

toggleCASE

toggleCASE が終了した。 C 4 人が 55B で並び、しかも、stats が同じ。もう、『みんな同じコードにたどり着いたんだ』と疑いもしなかったら、なんと、全然違うコード。しかも、公開後、nai さんにより、54B がでた。単独首位の可能性って、残ってたんだなぁ…

Character distance

Character distance 問題としては単純(!=簡単)。まず、index() とか indexOf() とか使う方法が思いつくが、検索開始位置の調整や、距離の微調整が必要になり効率が悪い。で、rindex() や lastIndexOf() を使うようにするとその点が見事にクリアされて縮…

Old Magician & permuatation date

Old Magician この問題は、結局、2番目の数値が奇数なら"BLACK"を、偶数なら"WHITE"を出力するというもの。単純な問題だ。ポイントは、1行目の要素数をどうやって無視するかということ。 C言語では、解法は若干の違いで 2 通りあったが、全員 88B で並んだ。…

Squares Fixed

Squares Fixed 終了。この問題は、入力の1行が、出力の2行に影響を及ぼすパターンで、難しい問題だった。C / JavaScript ともトップに大差を付けられて惨敗。途中から、縮められる気がしなくなってしまって、手がつかなくなった。ゴルフもこのくらいのレベ…

sort

sort が終了になり公開されたが、C の aglias さんの解が凄すぎる。qsort() のコンパレーターとして、文字列を渡してる。これ、コンパレーターの機械コードだ。ちょっと実験してみた。 main(a,b,c){ int(*f)()="YXZQQQ\x8b\x00+\x02\xc3"; a=10;b=20;c=f(&a,…

Comparing two numbers

Comparing two numbers が公開になった。 C 61+(a>b)-(a<b) // 78B a>b?62:61^b>a // 77B 61+(a>b)^a<b // 76B上記 78B の式は、まぁ、よく知られた式だ。私のは 77B。ここから縮まないのであきらめた。76B はトップ not さんの式。こうしてみると確かにそのとおりだなぁ。でも、思いつけなかった。 Groovy Groovy は、"" 演算子だ。 a<=>bとすると、ab に応じて、-1, 0, 1 の値をとる。Groovy がお手本としている ruby にある演算子のようだ。他の人の答えを見ていると、Perl…</b></b)>

Bigger power of two

Bigger power of two終了。 C 当初、log2() を用いて、58B でトップに立ったが、hinoe さんに 57B で抜かれた。色々と考えているうち、浮動小数点数の指数部が使えるのではと思いつき、さらに試行錯誤していたら、57B ができた。ちょっと感動だった。 ところ…

Nth prime

inaniwa さんの解。ご自身のブログでも書かれているが、 P[9999];Q;*p;main(n){for(;Q?gets(P)&&... この、配列 P の要素が 9999 を超えたときに、Q が non zero になることを利用した条件分岐、見事です。ただ、ちょっと気になったので、調べてみたら(っと…

C Style constants

C Style constantsが、先ほど終了した。 C は、scanf() の "%i" か。scanf() の man すら調べもしなかった。 〜〜〜 この問題で面白かったのは、inaniwa さんの解答だな。引用すると: main(s){for(;gets(&s,0.);)printf("%d\n",strtol());} ベースとなってい…

a prime number

a prime numberが終了し公開になった。分からなかったCの37B (http://golf.shinh.org/reveal.rb?a+prime+number/inaniwa_1267268383&c) は、printf の %d の precision だった。 "%.d" は、 "%.0d" と同じで、precision として 0 を指定したことになる。%d …