結果
| 問題 |
No.195 フィボナッチ数列の理解(2)
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2015-12-15 02:02:46 |
| 言語 | Ruby (3.4.1) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 600 bytes |
| コンパイル時間 | 252 ms |
| コンパイル使用メモリ | 7,296 KB |
| 実行使用メモリ | 12,288 KB |
| 最終ジャッジ日時 | 2024-09-15 12:56:55 |
| 合計ジャッジ時間 | 3,645 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 13 WA * 9 |
コンパイルメッセージ
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]
(2..1/0.0).each{|i|
f[i]=f[i-1]+f[i-2]
break if f[i]>=X
}
r=[r,[a,b]].min if f[-1]==X
end
}
}
puts r[0].to_f.finite? ? r*' ' : -1