Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Author : Saurav Kalsoor
- // String Transformations - KOTLIN
- import java.util.*
- var sc = Scanner(System.`in`)
- fun main() {
- val n = sc.nextInt()
- val k = sc.nextInt()
- val str = sc.next()
- println(stringTransformations(n, k, str))
- }
- fun stringTransformations(n: Int, k: Int, s: String): Int {
- val str = s.toCharArray()
- var first = -1
- var last = -1
- for (i in 0 until n) {
- if (str[i] == '1') {
- if (first == -1) {
- first = i
- } else {
- last = i
- }
- }
- }
- if (first == -1) {
- return 0
- } else if (last == -1) {
- return 1
- }
- var count = 2
- str[first] = '2'
- str[last] = '2'
- var prevChanged = first
- while (prevChanged < last) {
- if (last - prevChanged <= k) return count
- var i = -1
- for (j in prevChanged + 1..Math.min(n - 1, prevChanged + k)) {
- if (str[j] == '1') {
- i = j
- }
- }
- if (i == -1) {
- return -1
- }
- prevChanged = i
- str[prevChanged] = '2'
- count++
- }
- return count
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement