Advertisement
aslam_node

Untitled

May 26th, 2022
550
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. import java.util.*
  3.  
  4. fun main() {
  5.     val reader = Scanner(System.`in`)
  6.     var testCases: Int = reader.nextInt()
  7.  
  8.     while (testCases > 0) {
  9.  
  10.         val inputArray = IntArray(reader.nextInt())
  11.         for (item in inputArray.indices)
  12.             inputArray[item] = reader.nextInt()
  13.  
  14.         val sortedList = inputArray.sorted().toMutableList()
  15.         val rearrangeList: MutableList<Int> = mutableListOf()
  16.  
  17.         var flag = true
  18.         if (sortedList.size % 2 != 0) println("NO") else {
  19.  
  20.             val smallNumbersList = sortedList.subList(0, sortedList.size / 2)
  21.             val bigNumberList = sortedList.subList(sortedList.size / 2, sortedList.size)
  22.  
  23.             for (i in 0 until smallNumbersList.size) {
  24.                 rearrangeList.add(smallNumbersList[i])
  25.                 rearrangeList.add(bigNumberList[i])
  26.             }
  27.             rearrangeList.add(smallNumbersList[0])
  28.             rearrangeList.add(bigNumberList[0])
  29.  
  30.             for (i in 1 until rearrangeList.size - 1 step 1) {
  31.  
  32.                 //𝑏𝑖−1<𝑏𝑖>𝑏𝑖+1
  33.                 if (rearrangeList[i] > rearrangeList[i - 1] && rearrangeList[i] > rearrangeList[i + 1]) continue
  34.                 // 𝑏𝑖−1>𝑏𝑖<𝑏𝑖+1
  35.                 else if (rearrangeList[i] < rearrangeList[i - 1] && rearrangeList[i] < rearrangeList[i + 1]) continue
  36.                 else {
  37.                     flag = false
  38.                     break
  39.                 }
  40.             }
  41.             if (flag) {
  42.                 println("YES")
  43.                 for (i in 0..rearrangeList.size - 3) {
  44.                     print("${rearrangeList[i]} ")
  45.                 }
  46.             } else println("NO")
  47.         }
  48.  
  49.         testCases--
  50.     }
  51.  
  52. }
Advertisement
RAW Paste Data Copied
Advertisement