結果
問題 | No.281 門松と魔法(1) |
ユーザー |
|
提出日時 | 2017-06-26 21:22:04 |
言語 | Ruby (3.4.1) |
結果 |
AC
|
実行時間 | 90 ms / 1,000 ms |
コード長 | 1,209 bytes |
コンパイル時間 | 85 ms |
コンパイル使用メモリ | 7,424 KB |
実行使用メモリ | 12,416 KB |
最終ジャッジ日時 | 2024-10-04 09:50:36 |
合計ジャッジ時間 | 6,276 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 57 |
コンパイルメッセージ
Main.rb:17: warning: ambiguous first argument; put parentheses or a space even after `-' operator Main.rb:24: warning: ambiguous first argument; put parentheses or a space even after `-' operator Main.rb:32: warning: ambiguous first argument; put parentheses or a space even after `-' operator Main.rb:38: warning: ambiguous first argument; put parentheses or a space even after `-' operator Main.rb:44: warning: ambiguous first argument; put parentheses or a space even after `-' operator Main.rb:49: warning: ambiguous first argument; put parentheses or a space even after `-' operator Main.rb:61: warning: ambiguous first argument; put parentheses or a space even after `-' operator Syntax OK
ソースコード
def kadomatu?(a,b,c) (a!=c)&&((a<b&&b>c)||(a>b&&b<c)) end def say(t) puts t;exit 0 end def magic(h,d) [0,h-d].max end d,a,b,c = STDIN.read.split.map(&:to_i) say 0 if kadomatu?(a,b,c) say -1 if d == 0 a,c = c,a if a > c l = [a,b,c].min if a==b && b==c say -1 if l <= d say 3 end if [a,b,c].uniq.size == 2 if a==c if a < b say 1 if a>=1 say -1 else # a>b say 1 if kadomatu?(magic(a,d),b,c) say 2 if kadomatu?(magic(a,d),magic(b,d),c) say 3 if kadomatu?(magic(a,d*2),b,magic(c,d)) say 5 if kadomatu?(magic(a,d*3),b,magic(c,d*2)) say -1 end end # a<c if a==b say 1 if a>=1 say -1 else # b==c say 1 if kadomatu?(a,b,magic(c,d)) say 2 if kadomatu?(a,b,magic(c,d*2)) say -1 end end # a<b<c result = [] result << (c-b+d-1)/d if kadomatu?(a,b,magic(c,(c-b+d-1)/d*d)) result << ((c-b+d-1)/d+1) if kadomatu?(a,b,magic(c,(c-b+d-1)/d*d+d)) result << (b-a+d-1)/d if kadomatu?(a,magic(b,(b-a+d-1)/d*d),c) result << ((b-a+d-1)/d+1) if kadomatu?(a,magic(b,(b-a+d-1)/d*d+d),c) say -1 if result.empty? say result.min