メモ

yukicoderでゆるふわgolf

yukicoder No.280 歯車の問題(1)

問題はこちら
No.280 歯車の問題(1) - yukicoder

歯数ZaとZbの歯車があり、前者が|θa|回転したとき後者は|θb|=|θa|*Za/Zbだけ回転するとの事だったので、
Zbの歯車が更にZcの歯車と接している時、|θc|=|θb|*Zb/Zc=|θa|*Za/Zb*Zb/Zc=|θa|*Za/Zc
ここから帰納的に、Z1,…,Znの歯車が並んでいる時最初の歯車の回転をθ1とすれば最後は|θn|=|θ1|*Z1/Znとなり、減速比は|θ1|/|θn|=Zn/Z1となる事がわかる。
出力は既約分数でなくて良いので、Z1とZnをそのまま出力すれば良い

int main(){
	int n,z1,zn;
	scanf("%d%d",&n,&z1);
	n--;
	while(n--)scanf("%d",&zn);
	printf("%d/%d",zn,z1);
	return 0;
}

nもまとめて読み込むことを考えると、保持すべきは2番目と最後
2番目の値だけを保存するのは難しい……

s;
main(i){
	for(;~scanf("%d",&i);s=s<0?i:s-!s);
	s=!printf("%d/%d",i,s);
}

69B

2016/10/16追記
素直なのが一番短い、はっきりわかんだね

a,b;
main(i){
	for(;~scanf("%d",&b);a=i--?a:b);
	b=!printf("%d/%d",b,a);
}

68B