Atcoder ABS ABC088B Card Game for Two
こんにちは、ナナオです。 前回に引き続き競プロを実施していきたいと思います。 今回の問題は以下です。 ABC088B - Card Game for Two 実装 以下のように実装しました。 use proconio::input; fn main() { input! { n: u8, mut a: [i16; n], }; a.sort_by(|a, b| b.cmp(a)); let mut a_sum = 0; let mut b_sum = 0; for (i, &v) in a.iter().enumerate() { if i % 2 == 0 { b_sum += v; } else { a_sum += v; } } println!("{}", (a_sum - b_sum).abs()); } 数列を大きい順に並べ替えて、それぞれを交互に足し合わせて最終的にその差を出力するという実装ですが、これでいいみたいですね。 (ぶっちゃけ出力例がなかったらどうすればいいのかわけわからんかった。。。) AIさんに聞いてみましたら、わかりやすい返答が返ってきました。 ケーキの分けっこで考えよう 例えば、目の前に大きさがバラバラのケーキが5個あるとします。 あなたはアリスで、先に1個選べます。友達のボブはあなたの次に選びます。 ケーキのサイズ: 10cm, 8cm, 5cm, 3cm, 2cm ...