カメヲラボ

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

Holiday Hotel

この調子だとすっかり忘れてしまいそうなので、私の最短コードを貼っておく。問題自体はRiSKさんが書いてらっしゃるので、
http://d.hatena.ne.jp/RiSK/20060328#1143559282
http://d.hatena.ne.jp/RiSK/20060329#1143647136
http://d.hatena.ne.jp/RiSK/20060330#1143728488
http://d.hatena.ne.jp/RiSK/20060331#1143728735
http://d.hatena.ne.jp/RiSK/20060401#1143902161
こちらをご覧あれ。

最短コード157B


d['~~'];a,p;
main(i,s)
{
for(;scanf("%d",&i),i;printf("%d\n",s)){
for(memset(d,9,p=1e5);s=i--;d[a]>s?d[a]=s:0)scanf("%d%d",&a,&s);
for(;a=d[++i];)p>a?++s,p=a:0;
}
}


memsetで配列全体を大きな値にしておく。後ろのループは「配列は大きな値にセットされてるけどそのうち0になるでしょ」というなんともいい加減な終了判定だ。パッと見た感じまだ縮みそうな予感もするが、最近危ういコードばかり通しててちょっと気持ちが萎え気味だ。もうちょっとまともなコードを書くようにしないとナァ(;´д`)