結果
問題 | No.2564 衝突予測 |
ユーザー |
|
提出日時 | 2023-12-02 16:00:51 |
言語 | Crystal (1.14.0) |
結果 |
AC
|
実行時間 | 102 ms / 2,000 ms |
コード長 | 1,315 bytes |
コンパイル時間 | 16,848 ms |
コンパイル使用メモリ | 296,380 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-09-26 19:41:36 |
合計ジャッジ時間 | 15,113 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 9 |
ソースコード
class Carproperty x : Int64property y : Int64property d : Chardef initialize(@x : Int64, @y : Int64, @d : Char)endenddef distance(c1, c2)(c2.x - c1.x).abs + (c2.y - c1.y).absendt = read_line.to_i64ans = (1..t).map {cars = Array.new(2) { x, y, d = read_line.chomp.split; Car.new(x.to_i64, y.to_i64, d.chars[0]) }next false if cars[0].d == cars[1].dif cars.any?(&.d.==('L')) && cars.any?(&.d.==('R'))cars.swap(0, 1) unless cars[0].d == 'L'cars[0].y == cars[1].y && cars[0].x > cars[1].xelsif cars.any?(&.d.==('U')) && cars.any?(&.d.==('D'))cars.swap(0, 1) unless cars[0].d == 'U'cars[0].x == cars[1].x && cars[0].y < cars[1].yelsecars.swap(0, 1) unless {'L', 'R'}.includes?(cars[0].d)if cars[0].x > cars[1].xd = (cars[0].x - cars[1].x).abscars[0].x -= 2_i64 * dcars[0].d = cars[0].d == 'L' ? 'R' : 'L'endif cars[0].y > cars[1].yd = (cars[0].y - cars[1].y).abscars[0].y -= 2_i64 * dcars[1].d = cars[1].d == 'D' ? 'U' : 'D'endcollision_point = Car.new(cars[1].x, cars[0].y, '_')d0 = distance(cars[0], collision_point)d1 = distance(cars[1], collision_point)d0 == d1 && cars[0].d == 'R' && cars[1].d == 'D'end}.map { |elem| elem ? "Yes" : "No" }.join('\n')puts ans