2010-01-01から1年間の記事一覧

このコードがすごい! 2010 小テク部門

inaniwaさんのブログに便乗してすごい小テクを使っているコードを選んでみました。 a prime number by 51b main(n){for(;printf("%.d",83-n++););} printf("%.d",0)が何も出力しないという仕様。 (inaniwaさんもほぼ同じコードを書いてますがこのテクニック…

366. Divide section

なかなかagliasさんに追いつくことができなくて苦しみました。 基本的な考え方は最初に思いついたとおりで、ループを一重化して細かいところを削って削って追いついた感じです。 これで最短かな?と思ったらまだ縮められました。 最近細かいところを縮めきる…

362. Christmas tree

いろんな解き方があった問題です。 僕は最初からputchar()を使う方法ばっかり考えていたので他の人もそうかなと思ったらまったく違いました。 僕のコードはもう縮まないと思ってたんですがt=・・・?t:・・・というのが盲点でした。 tにtを代入するというのは…

356. partition by parity

終了間際にドタ参して1位取ってすいません。ちょっと最近忙しかったので・・・。 ループカウンタの動かし方がいろいろあって面白かったです。

350. Bigger power of two

約3カ月ぶりに問題を作りました。 この問題の元ネタは「ハッカーのたのしみ」の3-2の「次の2の冪乗への切り上げ/切り下げ」です。 「ハッカーのたのしみ」に上手いアルゴリズムが載っていなかったのでショートコーダーならどう書くかなと思って問題にして…

238. Negatenary

お久しぶりです。 最近忙しかったりあんまりコードが縮まなかったりであなごるに参加できてないです。 というわけで生存報告の代わりに過去の問題のコードを公開します。

337. Fibonacci Number

70バイトのコードです。

333. Totient

inaniwaさんとだいたい同じコードでしたが、2箇所縮めきれてなかったです。 最近こういうミスが多いです。ちゃんと考えないと。

337. Fibonacci Number

54Bのコードが通る確率は1/729です。 「274. Collatz Problem」の時のあれです。 (not rand)の方はちょっとひねって書いたので空白がありません。 実は微妙にうまくいかなかったので5Bぐらい損してるんですが。 1週間ぐらいしたらコードをこのブログに書き…

333. Totient

timeoutしないようにするので精一杯で最初のコードから本質的には何も変わっていません。 どう見ても無駄な部分があるのでそこを消せるかどうか考え中です。

332. Soroban Fixed

read()した段階で負けでした。 read()だと最後に改行が入ってgets()だと0x00が入るってことぐらいそろそろ覚えようよ・・・。 他もいろいろと工夫が足りなかったようです。

331. Triangle

inaniwaさんとはちょっと計算方法が違いました。 うーん、深く考えてなかったな・・・。

328. base convert

nnさんの解は予想外でした。 main再帰だと思い込んでいて他の方法は考えていなかったです。

326. box paint

inaniwaさんがブログでビットシフトについて書かれていたのでちょっと調べてみました。 ・数値の場合 main(){printf("%d %d %d",1<<32,2<<31,2<<-1);} 0 0 1 そのまま計算されている。 ・変数の場合 a=1;b=32;c=2;d=31;e=2;f=-1; main(){printf("%d %d %d",a<

328. base convert

82バイトは割とさくっと書けましたがここから縮むかどうか…。

326. box paint

ごちゃごちゃと数値をいじくっていたらきれいに書けました。 可読性は著しく低いですが。 cは10,32,35のどれかなのでa

327. next odd number

常連の人以外はなかなか50バイトを出していないのをみると、gets()+atoi()はあまり浸透してないみたいですね。

323. Sharkovskii order

お久しぶりです。まぁあなごるにはいましたけど。 Sharkovskii orderは変な方向にひねってしまった感のある問題でした。すいません。 で、naiが異常に短いコードを出してたわけですが、まさかmain関数をqsortの引数にするとは…。脱帽。

323. Sharkovskii order

Sharkovskii orderを出題しました。 Sharkovskii orderというのはSharkovskii's theoremに出てくる順序で、 「f:R→Rが連続で素周期nの周期点を持つとすると、Sharkovskii orderでn

321. add_sub_brainfuck_code

ちょっと忙しくてバタバタしているうちに終わってしまいました。残念。 8バイトも差があったので入出力関数が違うんだろうなと思っていたらreadでした。 read(1,&c,1)って-1を返すんですね。知らなかった…。 0を返すと思い込んでいて完全に盲点になってまし…

復帰

期末試験終了しました。 実はRoman numeralが楽しそうだったのでちょっとやってみてたんですけど、116バイトまでしか縮めれませんでした。 100切るとか凄すぎです…。

生存報告

最近あなごるに参加できてないけど生きてます。大学の期末試験がかなりやばい気がしてきたので7月末まで基本的には参加できません。 このブログも期末終了まで停止します。 もし万が一期末中なのにあなごるに出現したら優しく怒ってやってください。 それで…

307. Zigzag

こういう問題nnさんが好きそうだなと思ったらやっぱりnnさんの出題でした。 inaniwaさんのコードが異常に短かったのでまぁ乱数だろうなとは思ってたんですが、文字が38-n/2で求まるのは気付かなかったです。 最近単独トップとれてないなって思って調べたらTe…

値が小さいことが分かっているときの判定法

パー:10バイト 制限時間:5分 int型の変数iは30以下の自然数である。 iがフィボナッチ数のとき1となるような式を書け。

305. Factorization corrected

普通に2次方程式の解の公式を用いれば82Bにはなるのでそこからどれだけ縮めれるかですが…。 実はyvlさんと同じコードを思いついていたのに勘違いして縮まないなぁと思ってsubmitしていませんでした。orz。 最短コードは""-6という高級魔法を使っていました…

あなごる問題案

「Longest PI」 入力:なし 出力:π これはShortestかもしれない。

301. Palindromic prime

終了しました。 他の人の90Bのコードは予想とは違って怪しげなアルゴリズムを使っていました。 Timeまで酷似していたので同じアルゴリズムだと思っていたんだけどな。 僕のは3つのfor文を1つにたたきこむという強引なコード。 予想以上に面白い問題だっ…

301. Palindromic prime

90バイトで3人並ぶという面白い展開になっている。 しかもまだ縮みそうな感じがするので誰かが抜け出すかも。 他の人のコードは再現できているのでその点では安心しているんだけど。

131. alternating harmonic series

x,m,i;main(n){for(;x=++i%21*6;printf("%d/%d\n",m/=x,n/=x))for(m=m*i+i%2*2*n-n,n*=i;m%--x+n%x;);} 分数を既約分数にするところが問題で、このコードではm,nの最大公約数がi*5以下であることを用いている。 きわどいコードだけど通ればOKということで。 …

値の交換

パー:7バイト 制限時間:2分 int型の変数iはi==Xまたはi==Yである。 i==XのときはiをYにしてi==YのときはiをXにするにはどうすればよいか。