結果
問題 |
No.195 フィボナッチ数列の理解(2)
|
ユーザー |
|
提出日時 | 2015-12-15 02:08:02 |
言語 | Ruby (3.4.1) |
結果 |
WA
|
実行時間 | - |
コード長 | 654 bytes |
コンパイル時間 | 275 ms |
コンパイル使用メモリ | 7,552 KB |
実行使用メモリ | 12,288 KB |
最終ジャッジ日時 | 2024-09-15 12:57:02 |
合計ジャッジ時間 | 3,501 ms |
ジャッジサーバーID (参考情報) |
judge6 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 21 WA * 1 |
コンパイルメッセージ
Syntax OK
ソースコード
#!/usr/bin/ruby F10=[1,0] F01=[0,1] 2.upto(50){|i| F10[i]=F10[i-1]+F10[i-2] F01[i]=F01[i-1]+F01[i-2] } X,Y,Z=gets.split.map(&:to_i).sort Y=1 if Y==Z r=[Float::INFINITY,Float::INFINITY] (0..50).each{|i| (0..50).each{|j| x=F10[i] y=F01[i] z=F10[j] w=F01[j] det=x*w-y*z x,y,z,w=w,-y,-z,x a=x*Y+y*Z b=z*Y+w*Z next if det==0 if det<0 det=-det a=-a b=-b end if a%det==0&&b%det==0&&a>0&&b>0 a/=det b/=det f=[a,b] if f.include?(X) || lambda{ (2..1/0.0).each{|i| f[i]=f[i-1]+f[i-2] break if f[i]>=X } X==f[-1] }.call r=[r,[a,b]].min end end } } puts r[0].to_f.finite? ? r*' ' : -1