47 lines
1.1 KiB
Kotlin
47 lines
1.1 KiB
Kotlin
fun main() = with(System.`in`.bufferedReader()) {
|
|
val (n, m, q) = this.readLine()!!.split(' ').map { it.toInt() }
|
|
|
|
val characters = (1..n).map { IntArray(m) }
|
|
|
|
repeat(n) {
|
|
val trait = this.readLine()!!
|
|
|
|
for (i in 0 until m) {
|
|
characters[it][i] = when (trait[i]) {
|
|
'Y' -> 2
|
|
'N' -> 1
|
|
else -> 0
|
|
}
|
|
}
|
|
}
|
|
|
|
val queries = IntArray(m)
|
|
|
|
repeat(q) {
|
|
val iter = this.readLine()!!.split(' ').iterator()
|
|
val index = iter.next().toInt() - 1
|
|
queries[index] = when (iter.next().first()) {
|
|
'Y' -> 2
|
|
'N' -> 1
|
|
else -> 0
|
|
}
|
|
}
|
|
|
|
val filtered = characters.withIndex().filter { (ind, it) ->
|
|
(it zip queries).map {
|
|
if (it.second == 0) {
|
|
true
|
|
} else {
|
|
it.first == it.second
|
|
}
|
|
}.all { it }
|
|
}
|
|
|
|
if (filtered.size == 1) {
|
|
println("unique")
|
|
println(filtered.first().index + 1)
|
|
} else {
|
|
println("ambiguous")
|
|
println(filtered.size)
|
|
}
|
|
} |