https://coderun.yandex.ru/problem/good-line/description | Легкая |
---|
На день рождения маленький Ипполит получил долгожданный подарок — набор дощечек с написанными на них буквами латинского алфавита. Теперь-то ему будет чем заняться долгими вечерами, тем более что мама обещала подарить ему в следующем году последовательность целых неотрицательных чисел, если он хорошо освоит этот набор. Ради такого богатства Ипполит готов на многое.
Прямо сейчас юный исследователь полностью поглощён изучением хорошести строк. Хорошестью строки называется количество позиций от 1 до L - 1 (где L — длина строки), таких, что следующая буква в строке является следующей по алфавиту. Например, хорошесть строки "abcdefghijklmnopqrstuvwxyz" равна 25, а строки "abdc" — только 1.
Ипполит размышляет над решением закономерно возникающей задачи: чему равна максимально возможная хорошесть строки, которую можно собрать, используя дощечки из данного набора? Вы-то и поможете ему с ней справиться.
Ввод:
3 1 1 1Вывод:
2
Ввод:
2 3 4Вывод:
3
import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter
fun main() {
val reader = BufferedReader(InputStreamReader(System.`in`))
val writer = BufferedWriter(OutputStreamWriter(System.`out`))
val N = reader.readLine().toInt()
val counts = LongArray(N) { reader.readLine().toLong() }
var goodness = 0L
// Проходим по всем парам соседних букв (a-b, b-c, ...)
for (i in 0 until N - 1) {
goodness += minOf(counts[i], counts[i + 1])
}
writer.write(goodness.toString())
writer.newLine()
reader.close()
writer.close()
}