diff --git a/zeta_kotlin/completed/33093.kt b/zeta_kotlin/completed/33093.kt new file mode 100644 index 0000000..bb22ffc --- /dev/null +++ b/zeta_kotlin/completed/33093.kt @@ -0,0 +1,56 @@ +import java.io.* + +class GoldenTicketSolver( + val n: Int, + val m: Int, + val k: Int, + val teams: List> +) { + + fun solve(): List { + val goldenticked = mutableListOf() + val inst_goldenticked = mutableMapOf() + var kcnt = 0 + for ((index, teaminst) in this.teams.withIndex()) { + if (index < this.m) { + inst_goldenticked[teaminst.second] = 1 + } else { + if (kcnt >= this.k) { + break + } + val tmp = inst_goldenticked.getOrDefault(teaminst.second, 0) + if (tmp == 0) { + inst_goldenticked[teaminst.second] = 2 + goldenticked.add(teaminst.first) + kcnt += 1 + } else if (tmp == 1) { + continue + } else if (tmp == 2) { + continue + } + } + } + return goldenticked + } +} + +fun main() { + val tknz = StreamTokenizer(System.`in`.bufferedReader()) + + fun StreamTokenizer.nextInt(): Int { + nextToken() + return nval.toInt() + } + fun StreamTokenizer.nextString(): String { + nextToken() + return sval + } + + val (n, m, k) = (1..3).map { tknz.nextInt() } + val tms = (1..n).map { Pair(tknz.nextString(), tknz.nextString()) } + val solver = GoldenTicketSolver(n, m, k, tms) + + val solved = solver.solve() + println(solved.size) + solved.forEach { i -> println(i) } +}