hxrxchang / atcoder

https://atcoder.jp/users/hxrxchang
0 stars 0 forks source link

E - Red and Green Apples #123

Open hxrxchang opened 2 months ago

hxrxchang commented 2 months ago

https://atcoder.jp/contests/abc160/tasks/abc160_e

問題概要

赤いりんご、緑のりんご、無色のリンゴがそれぞれ複数個ある。りんご個々に美味しさの数値がわかる。 無色のりんごは赤にも緑にも任意に変更できる。 赤いりんごをX個、緑のりんごをY個選んで美味しさを最大化したとき、美味しさはいくつになるか求めよ。

解き方

赤いりんご、緑のりんごを降順でソートしてそれぞれX個、Y個まで抽出する。 無色のりんごも合わせて、全部同じ籠に入れる。 そこからX+Y個をでかい順で取り出せばOK。

func solve() {
    in := getInts()
    x, y := in[0], in[1]

    red := getInts()
    green := getInts()
    white := getInts()

    red = reverse(sortSlice(red))[:x]
    green = reverse(sortSlice(green))[:y]
    white = reverse(sortSlice(white))

    allApples := append(red, green...)
    allApples = append(allApples, white...)

    allApples = reverse(sortSlice(allApples))

    ans := 0
    for i := 0; i < x + y; i++ {
        ans += allApples[i]
    }

    fmt.Println(ans)
}

https://atcoder.jp/contests/abc160/submissions/57347490