結果
問題 |
No.635 自然門松列
|
ユーザー |
|
提出日時 | 2018-01-21 02:21:03 |
言語 | Ruby (3.4.1) |
結果 |
AC
|
実行時間 | 85 ms / 650 ms |
コード長 | 1,014 bytes |
コンパイル時間 | 42 ms |
コンパイル使用メモリ | 7,552 KB |
実行使用メモリ | 12,416 KB |
最終ジャッジ日時 | 2024-06-23 08:50:28 |
合計ジャッジ時間 | 2,679 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 23 |
コンパイルメッセージ
Syntax OK
ソースコード
INF = 1000000000 def solve(x1, x2, x3, y1, y2, y3) if (x1 == x2 && y1 == y2) || (x3 == x2 && y3 == y2) || (x1 == x3 && y1 == y3) return false end v1 = y1 * INF + x1 v2 = y2 * INF + x2 v3 = y3 * INF + x3 if (v2 < v1 && v2 < v3) || (v2 > v1 && v2 > v3) return true end if y1 == y2 && y3 == y2 return false end if y1 == y3 return false end if y1 == y2 f3 = -1.0 * (x3 - x2) / (y3 - y2) return f3 > 0 elsif y3 == y2 f1 = -1.0 * (x1 - x2) / (y1 - y2) return f1 > 0 else f1 = -1.0 * (x1 - x2) / (y1 - y2) f3 = -1.0 * (x3 - x2) / (y3 - y2) if [f1, f3].max >= 0 if [f1, f3].max == 0 return (x2 < x1 && x2 < x3) || (x2 > x1 && x2 > x3) elsif f1 == f3 return false else return true end else return false end end end n = gets.to_i n.times do |i| puts solve(*gets.split.map(&:to_i)) ? "YES" : "NO" end