Skip to content

Instantly share code, notes, and snippets.

@EugenyB
Created November 8, 2022 11:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save EugenyB/969e09b00fd7ac592b633fa469972781 to your computer and use it in GitHub Desktop.
Save EugenyB/969e09b00fd7ac592b633fa469972781 to your computer and use it in GitHub Desktop.
fun main() {
//val arr = intArrayOf(1, 2, -5, 7, 9, 0, 15, -4, 9)
//val fiveOfFives = IntArray(5) { 5 }
val n = readln().toInt()
val arr = readArrayFromLine()
val res = minimumsToTheLeft(arr)
printArray(res)
// val max = maxOfArray(arr)
// val count = count(max, arr)
//
// println(count)
// val element = readln().toInt()
// val index = findElement(element, arr)
// //val index = arr.indexOf(element)
// if (index == -1) {
// println("not found")
// } else {
// println("index = $index")
// }
//val s = sumOfNegatives(arr)
//println(s)
//val k = countPositives(arr)
// val k = arr.count{ it > 0 }
//println(k)
//increaseBy2(arr)
//printArray(arr)
//val arr = readArrayFromColumn(n)
//printArrayInColumn(arr)
//printArrayInReverseOrder(arr)
//printPositives(arr)
}
fun minimumsToTheLeft(arr: IntArray): IntArray {
val min = minOfArray(arr)
val k = count(min, arr)
val arrOfMin = IntArray(k) { min }
val arr2 = arr.toList().filter { it != min }.toIntArray()
return arrOfMin + arr2
}
fun minOfArray(arr: IntArray): Int {
var min = arr[0]
for (x in arr) {
if (x < min) {
min = x
}
}
return min
}
fun count(element: Int, arr: IntArray): Int {
var count = 0
for (x in arr) {
if (x == element) {
count++
}
}
return count
}
fun maxOfArray(arr: IntArray): Int {
var max = arr[0]
for (x in arr) {
if (x > max) {
max = x
}
}
return max
}
fun findElement(element: Int, arr: IntArray): Int {
for (i in arr.indices) {
if (element == arr[i]) {
return i
}
}
return -1
}
fun sumOfNegatives(arr: IntArray): Int {
var s = 0
for (x in arr) {
if (x < 0) {
s += x
}
}
return s
}
fun increaseBy2(arr: IntArray) {
for (i in arr.indices) {
if (arr[i] >= 0) {
arr[i] += 2
}
}
// Так нельзя, потому что x здесь - неизменяемый
// for (x in arr) {
// if (x >= 0) {
// x += 2
// }
// }
}
fun countPositives(arr: IntArray): Int {
var count = 0
for (x in arr) {
if (x > 0) {
count++
}
}
return count
}
fun printPositives(arr: IntArray) {
val k = countPositives(arr)
if (k==0) {
println("NO")
} else {
println(k)
for (x in arr) {
if (x > 0) {
print("$x ")
}
}
println()
}
}
fun printArrayInReverseOrder(arr: IntArray) {
for (x in arr.reversed()) {
print("$x ")
}
println()
}
fun readArrayFromColumn(n: Int) = IntArray(n) { readln().toInt() }
fun readArrayFromLine() = readln().split(" ").map { it.toInt() }.toIntArray()
fun printArray(arr: IntArray) {
for (x in arr) {
print("$x ")
}
println()
}
fun printArrayInColumn(arr:IntArray) {
for (x in arr) {
println(x)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment