カメヲラボ

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

ありえねーな問題だな、これも。

奇跡のコード160B

すっかり忘れていた問題だが
http://d.hatena.ne.jp/RiSK/20060324#1143177875
RiSKさんの日記で思い出した。
たしか侵食される土地に住んでいて、入力として与えられた地点が何年後に水浸しになるのかを計算する問題だったと思う。


普通は、入力値(x,yとする)をx*x+y*y計算して原点からの距離を求めて・・・で終わりなのだが、私はコードを短くしたい一新で色々いじくり回していた。そんななかで、明らかに間違いなのだけど通っちゃったコードがある。



float a,b;d;
main(c){
for(;scanf("%f%f",&a,&b)-1;
printf("Property %d: This property will begin eroding in year %d.\n",++d,c))
for(;c*32<b*b;)++c;
puts("END OF OUTPUT.");
}


これで166B。インチキコードだ。どうせインチキならとことんやっとこう、と思ってさっき以下のようにした。



float b;d;
main(c){
for(;scanf("%*s%f",&b);
printf("Property %d: This property will begin eroding in year %d.\n",++d,c))
for(;c*32<b*b;)++c;
puts("END OF OUTPUT.");
}


さすがにインプット解析をするほどの問題だとは思わないのでどんなテストケースかはわからないのだが、これで通るということは年数(答え)が昇順になってくれているということだろう。。。