Advertisement
saurav_kalsoor

String Transformations - KOTLIN

Sep 28th, 2022
842
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Author : Saurav Kalsoor
  2. // String Transformations - KOTLIN
  3.  
  4.  
  5. import java.util.*
  6.  
  7. var sc = Scanner(System.`in`)
  8.  
  9. fun main() {
  10.     val n = sc.nextInt()
  11.     val k = sc.nextInt()
  12.     val str = sc.next()
  13.     println(stringTransformations(n, k, str))
  14. }
  15.  
  16. fun stringTransformations(n: Int, k: Int, s: String): Int {
  17.     val str = s.toCharArray()
  18.     var first = -1
  19.     var last = -1
  20.     for (i in 0 until n) {
  21.         if (str[i] == '1') {
  22.             if (first == -1) {
  23.                 first = i
  24.             } else {
  25.                 last = i
  26.             }
  27.         }
  28.     }
  29.     if (first == -1) {
  30.         return 0
  31.     } else if (last == -1) {
  32.         return 1
  33.     }
  34.     var count = 2
  35.     str[first] = '2'
  36.     str[last] = '2'
  37.     var prevChanged = first
  38.     while (prevChanged < last) {
  39.         if (last - prevChanged <= k) return count
  40.         var i = -1
  41.         for (j in prevChanged + 1..Math.min(n - 1, prevChanged + k)) {
  42.             if (str[j] == '1') {
  43.                 i = j
  44.             }
  45.         }
  46.         if (i == -1) {
  47.             return -1
  48.         }
  49.         prevChanged = i
  50.         str[prevChanged] = '2'
  51.         count++
  52.     }
  53.     return count
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement