Codeforces 1353A - Most Unstable

2020-05-20  本文已影响0人  费城的二鹏

过段时间 Codeforces 要举办 kotlin 专场,kotlin 的作者出题,顺便学下 kotlin 的语法。

翻译

给你两个整数 n 和 m。你需要构造一个长度为 n 的数组 a,其中需要包含 n 个非负整数,并且这个队列的元素的和为 m。要求以下公式的值最大。

输入格式

第一行包含一个数字 t,表示 t 个测试用例。

每个测试用例包含一行输入,n m,用空格分隔。

输出格式

每个测试用例输出一行,输出以上公式可能的最大值。

分析

分几种情况,如果 n == 1,那么只能是 0

如果 n == 2,那么最大情况就是 m 0 或者 0 m

如果 n >= 3,那么最大情况就是 0 0 0 0 m 0 0 ...

代码(kotlin)

// https://codeforces.com/contest/1353/problem/A

import java.io.*

private var br: BufferedReader? = null

fun br(): BufferedReader? {
    if (br == null) {
        var isLocal = false
        val file = File("./io/input.txt")

        try {
            isLocal = file.exists()
        } catch (e: Exception) {

        }

        br = if (isLocal) {
            BufferedReader(BufferedReader(FileReader(file)));
        } else {
            BufferedReader(InputStreamReader(System.`in`))
        }
    }
    return br
}

private fun readLn() = br()?.readLine()!! // string line
private fun readInt() = readLn().toInt() // single int
private fun readLong() = readLn().toLong() // single long
private fun readDouble() = readLn().toDouble() // single double
private fun readStrings() = readLn().split(" ") // list of strings
private fun readInts() = readStrings().map { it.toInt() } // list of ints
private fun readLongs() = readStrings().map { it.toLong() } // list of longs
private fun readDoubles() = readStrings().map { it.toDouble() } // list of doubles
private fun readArray() = readStrings().map { it.toInt() }.toIntArray() // list of ints

fun case() {
    val (n, m) = readInts()
    if (n == 1) {
        println(0)
    } else if (n > 2) {
        println(m * 2)
    } else {
        println(m)
    }
}
 
fun main() {
    init()
    var t = readInt()
    while (t-- > 0) {
        case()
    }
}

更多代码尽在 https://github.com/Tconan99/Codeforces

by 费城的二鹏 2020.05.19 长春

上一篇下一篇

猜你喜欢

热点阅读