Codeforces 1353B - Two Arrays An

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

朋友家的猫咪,特别可爱。

翻译

跟你两个数组 a 和 b,都包含 n 个数字,给你一个整数 k。

每一次移动,你可以交换 a 和 b 数组内任意一个数组。你的任务是在不超过 k 次移动的情况下,使 a 的和最大。

输入格式

第一行输入数字 t,表示 t 组测试用例。

每个测试用例,第一行输入 n k,用空格分隔。

第二行和第三行分别输入 a 和 b,用空格分隔。

输出格式

每个测试用例输出最大和。

分析

可以排序列表,然后将 b 中最大值与 a 中最小值比较,如果 a 中的值小,就交换数值,然后判断步数 k 是否到达,如果没到达就重新排序重复以上步骤。

代码(kotlin)

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

import java.io.*

private var br: BufferedReader? = null

private fun br(): BufferedReader? {
    if (br == null) {
        var isLocal = false
        val file = File("./file/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() {
    var (n, k) = readInts()
    var a = readInts().toMutableList()
    var b = readInts().toMutableList()

    a = a.sorted().toMutableList()
    b = b.sortedDescending().toMutableList()

    while (k-- > 0) {
        if (b[0] > a[0]) {
            a[0] = b[0].also { b[0] = a[0] }
            a = a.sorted().toMutableList()
            b = b.sortedDescending().toMutableList()
        } else {
            break
        }
    }

    println(a.sum())
}

fun main() {
    var t = readInt()
    while (t-- > 0) {
        case()
    }
}

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

by 费城的二鹏 2020.05.19 长春

上一篇 下一篇

猜你喜欢

热点阅读