Created
November 8, 2022 11:48
-
-
Save EugenyB/969e09b00fd7ac592b633fa469972781 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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