Advertisement
Guest User

Untitled

a guest
Feb 21st, 2020
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 4.25 KB | None | 0 0
  1. private fun readln() = readLine()!!
  2. private fun readlnByte() = readln().toByte()
  3. private fun readlnShort() = readln().toShort()
  4. private fun readlnInt() = readln().toInt()
  5. private fun readlnLong() = readln().toLong()
  6. private fun readlnFloat() = readln().toFloat()
  7. private fun readlnDouble() = readln().toDouble()
  8. private fun readlnBigInt(radix: Int = 10) = readln().toBigInteger(radix)
  9. private fun readlnBigDecimal() = readln().toBigDecimal()
  10.  
  11. private fun lineSequence(limit: Int = Int.MAX_VALUE) = generateSequence { readLine() }.constrainOnce().take(limit)
  12. private fun readlnStrings() = readln().split(' ')
  13. private fun readlnBytes() = readlnStrings().map { it.toByte() }
  14. private fun readlnShorts() = readlnStrings().map { it.toShort() }
  15. private fun readlnInts() = readlnStrings().map { it.toInt() }
  16. private fun readlnLongs() = readlnStrings().map { it.toLong() }
  17. private fun readlnFloats() = readlnStrings().map { it.toFloat() }
  18. private fun readlnDoubles() = readlnStrings().map { it.toDouble() }
  19.  
  20. private fun readByteArray() = readlnStrings().run { ByteArray(size) { get(it).toByte() } }
  21. private fun readShortArray() = readlnStrings().run { ShortArray(size) { get(it).toShort() } }
  22. private fun readIntArray() = readlnStrings().run { IntArray(size) { get(it).toInt() } }
  23. private fun readLongArray() = readlnStrings().run { LongArray(size) { get(it).toLong() } }
  24. private fun readFloatArray() = readlnStrings().run { FloatArray(size) { get(it).toFloat() } }
  25. private fun readDoubleArray() = readlnStrings().run { DoubleArray(size) { get(it).toDouble() } }
  26.  
  27. private fun readlnByteArray(n: Int) = ByteArray(n) { readlnByte() }
  28. private fun readlnShortArray(n: Int) = ShortArray(n) { readlnShort() }
  29. private fun readlnIntArray(n: Int) = IntArray(n) { readlnInt() }
  30. private fun readlnLongArray(n: Int) = LongArray(n) { readlnLong() }
  31. private fun readlnFloatArray(n: Int) = FloatArray(n) { readlnFloat() }
  32. private fun readlnDoubleArray(n: Int) = DoubleArray(n) { readlnDouble() }
  33.  
  34. private fun readByteArray2d(rows: Int, cols: Int) = Array(rows) { readByteArray().also { require(it.size == cols) } }
  35. private fun readShortArray2d(rows: Int, cols: Int) = Array(rows) { readShortArray().also { require(it.size == cols) } }
  36. private fun readLongArray2d(rows: Int, cols: Int) = Array(rows) { readLongArray().also { require(it.size == cols) } }
  37. private fun readIntArray2d(rows: Int, cols: Int) = Array(rows) { readIntArray().also { require(it.size == cols) } }
  38. private fun readFloatArray2d(rows: Int, cols: Int) = Array(rows) { readFloatArray().also { require(it.size == cols) } }
  39. private fun readDoubleArray2d(rows: Int, cols: Int) = Array(rows) { readDoubleArray().also { require(it.size == cols) } }
  40.  
  41. private fun isWhiteSpace(c: Char) = c in " \r\n\t"
  42.  
  43. // JVM-only targeting code follows next
  44.  
  45. // readString() via sequence is still slightly faster than Scanner
  46. private fun readString() = generateSequence { System.`in`.read().toChar() }
  47.     .dropWhile { isWhiteSpace(it) }.takeWhile { !isWhiteSpace(it) }.joinToString("")
  48. private fun readByte() = readString().toByte()
  49. private fun readShort() = readString().toShort()
  50. private fun readInt() = readString().toInt()
  51. private fun readLong() = readString().toLong()
  52. private fun readFloat() = readString().toFloat()
  53. private fun readDouble() = readString().toDouble()
  54. private fun readBigInt(radix: Int = 10) = readString().toBigInteger(radix)
  55. private fun readBigDecimal() = readString().toBigDecimal()
  56.  
  57. private fun readBytes(n: Int) = generateSequence { readByte() }.take(n)
  58. private fun readShorts(n: Int) = generateSequence { readShort() }.take(n)
  59. private fun readInts(n: Int) = generateSequence { readInt() }.take(n)
  60. private fun readLongs(n: Int) = generateSequence { readLong() }.take(n)
  61. private fun readFloats(n: Int) = generateSequence { readFloat() }.take(n)
  62. private fun readDoubles(n: Int) = generateSequence { readDouble() }.take(n)
  63.  
  64. fun main() {
  65.     val n : Int = readlnInt()
  66.     val ar : IntArray = readIntArray()
  67.     ar.reverse()
  68.     val ss = mutableSetOf<Int>()
  69.     val nr : MutableList<Int> = ArrayList()
  70.     for (it in ar) {
  71.  
  72. if (!ss.contains(it)) {
  73.             ss.add(it)
  74.             nr.add(it)
  75.         }
  76.     }
  77.     println(nr.count())
  78.     nr.reverse()
  79.     for (it in nr) {
  80.         print(it.toString() + " ")
  81.     }
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement