https://codeforces.com/contest/1431
练习Kotlin的基本操作:输入输出、数组定义与遍历,数组排序,防止溢出
import java.util.*
import kotlin.math.*
fun main() {
val read = Scanner(System.`in`)
var t = read.nextInt()
while (t-- > 0) {
var n = read.nextInt()
var a = Array(n) { 0L }
for (i in a.indices)
a[i] = read.nextLong()
a.sortDescending()
var cnt = 0L
var ans = 0L
for (ai in a) {
++cnt
var tmp = cnt * ai
ans = max(ans, tmp)
}
println(ans)
}
}
暂时不知道怎么用foreach修改里面的元素
有一说一kt是真的简洁,不用c++那样传一堆东西。
也可以直接sortDescending()。
import java.util.*
import kotlin.math.*
fun main() {
val read = Scanner(System.`in`)
var t = read.nextInt()
while (t-- > 0) {
var str = read.next()
var n = str.length
var dp = Array(2) { Array(n + 1) { 0 } }
for (i in 1..n) {
dp[1][i] = dp[0][i - 1]
if (str[i - 1] == ‘w‘) {
dp[0][i] = min(dp[0][i - 1], dp[1][i - 1]) + 1
dp[1][i] = Int.MAX_VALUE / 2
} else if (str[i - 1] == ‘v‘) {
dp[0][i] = dp[1][i - 1] + 1
dp[1][i] = dp[0][i - 1]
}
}
println(min(dp[0][n], dp[1][n]))
}
}
import java.util.*
import kotlin.math.*
fun main() {
val read = Scanner(System.`in`)
var t = read.nextInt()
while (t-- > 0) {
var n = read.nextInt()
var k = read.nextInt()
var p = Array(n + 2) { 0 }
for (i in 1..n)
p[i] = read.nextInt()
p.reverse()
var ans = 0L
for (x in 1..n) {
var tmp = 0L
var cnt = x - x / k
for (i in cnt + 1..x)
tmp += p[i]
ans = max(ans, tmp)
}
println(ans)
}
}
原文:https://www.cnblogs.com/purinliang/p/14620099.html