AtCoder

ABC354 B問題(AtCoder Janken 2)を解く

AtCoder_ABC354_B

AtCoder が提供しているABC(AtCoder Beginner Contest)354 B問題をC++とPythonで解いてみました。ABC354は、2024年5月18日21:00に実施されました。

AtCoder の紹介はこちらに、プログラミングの方針はこちらに記事があります。

B問題 AtCoder Janken 2(Difficulty : 54)

問題の詳細は、リンク先をご覧ください。

ABC354 B問題 AtCoder Janken 2

ソートした名前とレートの合計から勝者を求めます。AtCoder Problems による Difficulty は 54 でした。

解答案

C++ プログラム例(ABC354B)

名前とレートを読み込み、レートの合計を求めます。次に名前をソートし、レートの合計をユーザの人数で割った余りから勝者を求めます(17行目)。

以下が、C++プログラムです。

#include <bits/stdc++.h>
using namespace std;

int main()
{
	int n;
	cin >> n;
	vector<string> name(n);
	int sum = 0;
	for (int i = 0; i < n; ++i) {
		int rate;
		cin >> name[i] >> rate;
		sum += rate;
	}
	sort(name.begin(), name.end());

	cout << name[sum % n] << endl;

	return 0;
}

AC(Accepted=正しいプログラム)と判定されました。

Python プログラム例(ABC354A)

Python版も基本的な考え方は同じです。以下がプログラムです。

"""AtCoder Beginner Contest 354 B"""
n = int(input())
name = [""] * n
s = 0
for i in range(n):
    name[i], rate = input().split()
    s += int(rate)
name.sort()

print(name[s % n])

こちらも「AC」と判定されました。

最後に

文字列の配列のソートができれば、取り組みやすい問題でした。

引き続き ABC の問題を紹介していきます。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA