[c][short coding]ICPCの予選問題を解いてみる。(2007 japan domestic)

ICPCの予選問題をshort codingの練習がてら解いてみた。問題は日本予選の1問目。

問題はちなみにここにあります.POJの3325番目です。

正答率が70overという簡単な問題。ぶっちゃけquick sortするだけです.short codingの練習にはうってつけかと。あと、short coding本のquick sortの章の練習問題としてもいいと思う。

で、つくったのはこんな感じのコード。

n[99];q(int*a){a=*a-*1[&a];}main(a,b,c,i){for(;scanf("%d",&b),b;){for(c=0,i=0;i<b;i++)scanf("%d",n+i);qsort(n,b,4,q);for(i=1;i<b-1;i++)c+=n[i];printf("%d\n",c/(b-2));}}

172Bもあるorz.for文とか使いすぎなのですよね..変数も多いし.. short coding本読んで研究するかな..

トップの人は127B。なんと45Bも!差があります。id:kurimuraさんはshort coding本にものってたし、流石といった感じですね。

まぁ,とはいうもののこれでも現段階だと541人中4位。しかしながら、このコンテストの趣旨は、如何にして少ないメモリでプログラムを動かすかという感じなので、コードの容量の少なさとかは少しコンテストの趣旨とは離れる感じ。とはいうものの短いコードのもつ魔力ってのは確かに存在してて、短いコード記録を立てている人には畏敬の念すら感じられます。

ICPC自体の日本予選は3〜4問解ければ通過できるっぽい。POJはアルゴリズムとかの勉強とかにほんとに役立ちそう.. 色々と解いていこうかな.

というかPKJ judge onlineは本当に面白いな。解いてるうちに、中国のスーパープログラマーとか色々と発見できそう。

ちなみに今年の世界コンテストの結果はこんな感じ

 1位 ワルシャワ大学(ポーランド
 2位 清華大学(中国)
 3位 サンクトペテルブルグ光学・精密機械大学(ロシア)
 4位 マサチューセッツ工科大学アメリカ)
 5位 ノボシビルスク国立大学(ロシア)
 6位 サラトフ国立大学(ロシア)
 7位 トゥエンテ大学(オランダ)
 8位 上海交通大学(中国)
 9位 ウォータールー大学(カナダ)
 10位 モスクワ国立大学(ロシア)
 11位 オークランド大学(ニュージーランド
 12位 カリフォルニア工科大学アメリカ)

ロシアすごいなww やばすw サラトフ国立大学なんて聞いたことも無いけどレベルが高いのでしょうねw