GCJJ2011

どうも きゃつぱーです。
さいきんですね catupperを他の言い方できないかと色々考えていたんですが、結局「きゃっとあっぱー」になってしまうんですよね。
きゃつぱーは呼称ですから正式な読み方ではないです。

本当は昨日のうちに更新したかったんですが 風邪をこじらしてしまいまして、結果的に今日更新することになりました。
まぁおかげでGCJJの話題ができてよかったんですが。
すごいひどい風邪ですた。 その日の午前2時くらいに起きたら喉と頭がいたくて重くて、意識も朦朧としていて目覚ましを再セットして寝たんですが、
朝起きたら更に悪化していて、しかし今休んでは皆勤賞を逃すではないかと思い、風邪を引いてないような素振りで朝を過ごし電車通学。
電車の中での長時間睡眠のおかげか身体が楽になっており、これはいけるんではないかと意気込んで1時間目の体育を受けたところ
案外元気にソフトボールできたので、このまま6時限過ごそうと思ったのですが、3時限目に視聴覚室で映像を観るという非常に目に負担のかかる授業がありまして
もう我を見失うほど辛い状況でした。体温の上昇が容易にわかる状況だった。命の危険すら感じた。だがしかし個々で死ぬ訳にはいかない、まだ彼女作ってないではないか
そう思いながら何とか昼休みまで持ちこたえた。 ご飯を食べたら身体が体育の時と同じくらい楽になったので廊下走りまわったり他のクラスの窓から出没したり、あと2時限のり切ろうと思っていたら。5時限目で元気どっかいってもうた。これはアカンとおもって保健室にでも行こうではないかと思ったが、私の知人が保健室に言ってたことになってたので(過去完了)、一日に二人も保健室に行くのは良くないと思い 以外にもスルー。6次限目は春雨物語の古現対訳だったので ここはひとまずROMってあとでノート移さてもらう計画を立てる。
だが・・・ダメっ! 先生に当てられる!圧倒的不運!已然形+「ば」がどういう意味か思い出せなかったがなんとか持ちこたえる。いや実際問題持ちこたえれてない! そして6時限目終了。 早速保健室で体温を測ったら、37.4℃・・・。微妙・・・ いや 返って絶妙! 案外低いなーと思い少林寺拳法部を徘徊してから友人とHOJの話をしながら帰宅し、家でもう一度体温を計ったら 38.4℃ なんと! 1Kも上がってるではないか! そこで私はログアウトした・・・。

目が覚めたらGCJJの日だった!

さて今回の本題はGCJJですが
まぁ1/4日あったしそれほど難しい問題でも無いですから普通に解いても面白くない、ということで前回のつながりでショートコーディングしてみますた。
多く縮みそうなAとCをショートコーディングしたいと思います。Bなんてなかった。

Problem:A


はいgistは便利ですね 複数行のコードだと見やすい、便利。
さてこれから1行のgistでなくても良かったんじゃないかってなるようにショートコーディングしていきまーす

はい やっぱり1行でもgistは便利ですね カラーリングみやすい。
今回はテクニックもくそもないですからただ単に一行にしてif文消して、宣言いじっておわりってかんじですね。
なにかこれ以上縮みますかね。
よくみるとAっていう1Bのポインタがあるんでgets(&M)→gets(A)で1B減りますね。
それに2つ目のfor文から3つ目のfor文にかけてですが
3つ目のj=C-1の初期化がじつは入りませんね 2つ目のfor文でj=Cになってbreakしてますから j--でいいですね。
だとしたらj--をなくして 実行分のなかで--jすれあb短縮されますね。
ていうかfor文が3つ有るのがイタイですね 消せませんかねどれか。それにW--が無駄に冗長。
とりあえずAは

A[100],B[100],M,C,W,j;int main(i){for(gets(A);~scanf("%d%d%d",&M,&C,&W);printf("Case #%d: %d\n",i++,W+1)){for(j=0;j<C;j++)scanf("%d%d",&A[j],&B[j]);for(W--;j+1;)W=W<A[--j]+B[j]-1?W<B[j]?W=A[j]+W-1:W-B[j]:W;}}

これでいいですかね Wについては放置です。
ちなみにこの記事を書いてる時に、たった今gistが落ちましたorz
なので続きはまた今度・・・