Advertisement
999ms

Untitled

May 22nd, 2019
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 1.92 KB | None | 0 0
  1. import java.io.*
  2. import java.util.*
  3. val reader = BufferedReader(InputStreamReader(System.`in`))
  4. val writer = PrintWriter(System.out)
  5.  
  6. fun solve() {
  7.     val n = reader.readLine()!!.toInt()
  8.     var arr = Array(n) { IntArray(3) }
  9.     for (i in 0 until n) {
  10.         var tk = StringTokenizer(reader.readLine())
  11.         arr[i][0] = tk.nextToken()!!.toInt()
  12.         arr[i][1] = tk.nextToken()!!.toInt()
  13.         arr[i][2] = i + 1
  14.     }
  15.     Arrays.sort(arr, object : Comparator<IntArray> {
  16.         override fun compare(o1: IntArray, o2: IntArray): Int {
  17.             if (o1[0] == o2[0])
  18.                 return Integer.compare(o1[1], o2[1])
  19.             return Integer.compare(o1[0], o2[0])
  20.         }
  21.     })
  22.     var set = TreeSet<Int>()
  23.     var map = HashMap<Int, ArrayList<Int>>()
  24.     for (i in 0 until n) {
  25.         for (adding in -1..1) {
  26.             for (j in 0..1) {
  27.                 set.add(arr[i][j] + adding)
  28.                 if (map[arr[i][j] + adding] == null)
  29.                     map[arr[i][j] + adding] = ArrayList()
  30.             }
  31.         }
  32.         map[arr[i][0]]!!.add(arr[i][2])
  33.         map[arr[i][1]]!!.add(-arr[i][2])
  34.     }
  35.     var list = ArrayList<Int>()
  36.     var tmp = 0
  37.     for (x in set) {
  38.         if (map[x] != null)
  39.             for (values in map[x]!!) {
  40.                 if (values > 0) {
  41.                     list.add(values)
  42.                     tmp++
  43.                 } else {
  44.                     tmp--
  45.                 }
  46.             }
  47.         if (tmp == 0 && list.size > 0) {
  48.             break
  49.         }
  50.     }
  51.     if (list.size != n) {
  52.         var ans = Array(n) { 1 }
  53.         for (values in list) {
  54.             ans[values - 1] = 2
  55.         }
  56.         for (values in ans) {
  57.             writer.print("$values ")
  58.         }
  59.         writer.print("\n")
  60.     } else {
  61.         writer.print("-1\n")
  62.     }
  63. }
  64.  
  65. fun main() {
  66.     var t = readLine()!!.toInt()
  67.     while (t-- > 0) {
  68.         solve()
  69.     }
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement