[AtCoder] AtCoder Beginner Contest 386 D. Diagonal Separation

TaeGN·2024년 12월 28일

AtCoder

목록 보기
54/55

문제풀이

  1. 색깔이 주어진 점들을 X, Y좌표로 오름차순 정렬한다.
  2. 정렬된 점들을 순회하며 흰색 점이 검정색 점보다 X or Y좌표가 앞서있는 것이 하나라도 있는지 확인한다.

주의사항


소요시간

40분


package AtCoder.ABC.ABC386.D

fun main() {
    val (N, M) = readln().trim().split(" ").map(String::toInt)
    val list = List(M) { readln().trim().split(" ").let { Triple(it[0].toInt(), it[1].toInt(), it[2]) } }
        .sortedWith(compareBy({ it.first }, { it.second }))
    var minY = Int.MAX_VALUE
    fun result(): String {
        for ((X, Y, C) in list) {
            if (C == "B") {
                if (minY <= Y) return "No"
            } else {
                minY = minOf(minY, Y)
            }
        }
        return "Yes"
    }
    println(result())
}

문제링크

https://atcoder.jp/contests/abc386/tasks/abc386_d

0개의 댓글