結果
問題 | No.195 フィボナッチ数列の理解(2) |
ユーザー |
|
提出日時 | 2015-12-15 02:23:21 |
言語 | Ruby (3.4.1) |
結果 |
AC
|
実行時間 | 105 ms / 5,000 ms |
コード長 | 702 bytes |
コンパイル時間 | 164 ms |
コンパイル使用メモリ | 7,552 KB |
実行使用メモリ | 12,288 KB |
最終ジャッジ日時 | 2024-12-26 05:39:54 |
合計ジャッジ時間 | 3,463 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 22 |
コンパイルメッセージ
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 _x,_y,_z = X==Y ? Y==Z ? [1,Y,Z] : [Y,Z,X] : [X,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*_x+y*_y b=z*_x+w*_y 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?(_z) || lambda{ (2..1/0.0).each{|i| f[i]=f[i-1]+f[i-2] break if f[i]>=_z } _z==f[-1] }.call r=[r,[a,b]].min end end } } puts r[0].to_f.finite? ? r*' ' : -1