Moo University - Team Tryouts(9)
ちょっと間が開いたので、これまでの内容を読みたい人は
http://www.4dm.org/PKU/2008.htmをドゾー。
最短コード263B
この問題はじわりじわりと削り続けて、なかなか終わりが見えない。このコードは最短では無いのかもしれないが、忘れないうちに公開しておく。ちなみに元のコードはhttp://d.hatena.ne.jp/Ozy/20060202#p1。k.inabaさんのすんばらしいアルゴリズムで書かれたコードは、最短コードを目指すためには最適だ。見比べるとわかると思うが、もはや原形をとどめていないw
i,s,t,A,B,h[2004],r[2000];
c(int*a,int*b){return*a-*b;}
main(n){
for(;~scanf("%d",h+i);++i)h[i]*=i>3?i%2?4*h[2]:h[1]:1;
for(;i--;){
for(;B=h[n+=3];A>h[3]|A<0||(r[t++]=B,r[t++]=B-4*A-2))
A=h[i]-h[--n]+h[3];
for(qsort(r,t,4,c);n=t;s=s<++B?B:s)B-=r[--t]&2;
}
printf("%d",s);
}
『こんなんで通るの!?!?』ってかんじだが、通った。
これより短いコードはがあるとすれば、それはhinoeさんが書いてくれるハズ。後はまかせた・・・ぐはっ。