https://coderun.yandex.ru/problem/symmetric-sequence/description Легкая

Решение

import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter

// Функция добавляет минимальное количество элементов в конец массива, чтобы он стал палиндромом
private fun symmetricSequence(nums: IntArray): IntArray {
    val seq = mutableListOf(*nums.toTypedArray()) // Создаем изменяемый список на основе входного массива
    val size = nums.size
    var count = 0
    
    // Добавляем элементы в конец, пока последовательность не станет палиндромом
    while (!isPalindromic(seq)) {
        seq.add(size, nums[count])
        count++
    }
    
    return seq.subList(nums.size, seq.size).toIntArray() // Возвращаем добавленные элементы
}

// Проверяет, является ли список палиндромом
private fun isPalindromic(list: List<Int>) = list == list.reversed()

fun main() {
    val reader = BufferedReader(InputStreamReader(System.`in`))
    val writer = BufferedWriter(OutputStreamWriter(System.out))

    reader.readLine() // Читаем размер массива (не используется)
    val nums = reader.readLine().trim().split(" ").map { it.toInt() }.toIntArray()

    val res = symmetricSequence(nums)
    writer.write("${res.size}\\n") // Выводим количество добавленных элементов
    writer.write(res.joinToString(" ") + "\\n") // Выводим сами элементы

    reader.close()
    writer.close()
}