Skip to content

Instantly share code, notes, and snippets.

@holyketzer
Created February 16, 2014 14:19
Show Gist options
  • Select an option

  • Save holyketzer/9034957 to your computer and use it in GitHub Desktop.

Select an option

Save holyketzer/9034957 to your computer and use it in GitHub Desktop.
/**
* Created by alex on 15.02.14.
*/
fun main(args: Array<String>) {
var s = readLine()!!
var first = s!!.indexOf('1')
var last = s!!.lastIndexOf('1')
if (first == -1) {
println(0)
} else {
var maxDist = 0
var bestX = first
var bestY = first
var prevP = first
var lastZero = false
for (i in first+1..last) {
if (lastZero && s[i] == '1') {
lastZero = false
var delta = i - prevP;
if (delta > maxDist) {
maxDist = delta
bestX = prevP
bestY = i
}
prevP = i
}
if (s[i] == '0') {
lastZero = true
}
}
if (bestX != bestY) {
var one = last - first
var two = (bestX - first) + (last - bestY)
if (one < two) {
println("1")
println("${first + 1} ${last + 1}")
} else {
println("2")
println("${first + 1} ${bestX + 1}")
println("${bestY+ 1} ${last + 1}")
}
}
else {
println("1")
println("${first + 1} ${last + 1}")
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment