AtCoder

ABC319 A問題(Legendary Players)を解く

AtCoder_ABC319_A

AtCoder が提供しているABC(AtCoder Beginner Contest)319 のA問題をC++とPythonで解いてみました。ABC319は、2023年9月9日21:00に実施されました。

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

A問題 Legendary Players(Difficulty : 10)

問題はリンク先をご覧ください。

ABC319 A問題 Legendary Players

マップ(辞書)を使って解きました。AtCoder Problems による Difficulty は 10 でした。

解答案

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

与えられたプレイヤーのハンドルネームをキー、レーティングをバリューとするマップを定義しました(6ー16行目)。このマップ定義は、問題文から手で書き換えましたが、もう少し定義が多ければ、プログラムでコード生成したと思います。

文字列を読み込んで、対応するバリューを表示します(20行目)。以下が、C++プログラムとなります。

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

int main()
{
	map<string , int> m;
	m["tourist"] = 3858;
	m["ksun48"] = 3679;
	m["Benq"] = 3658;
	m["Um_nik"] = 3648;
	m["apiad"] = 3638;
	m["Stonefeang"] = 3630;
	m["ecnerwala"] = 3613;
	m["mnbvmar"] = 3555;
	m["newbiedmy"] = 3516;
	m["semiexp"] = 3481;

	string s;
	cin >> s;
	cout << m[s] << endl;

	return 0;
}

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

Python プログラム例(ABC319A)

Python では辞書を使いました。基本的な考え方は同じです。以下となります。

"""AtCoder Beginner Contest 319 A"""
m = {
    "tourist": 3858,
    "ksun48": 3679,
    "Benq": 3658,
    "Um_nik": 3648,
    "apiad": 3638,
    "Stonefeang": 3630,
    "ecnerwala": 3613,
    "mnbvmar": 3555,
    "newbiedmy": 3516,
    "semiexp": 3481
}

s = input()
print(m[s])

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

最後に

ABC319は、7問で行われました。AtCoderからは以下の告知がありました。

※今まで ABC で出題予定の高難度の問題がたまっていたため 8 問制にしていましたが、在庫が消化できてきたため今回から 7 問制となります。 F 問題までの難易度は今までと同等となる予定です。G 問題の難易度は幅広く、今までの簡単な G 問題に対応するときから今までの難しい Ex 問題に対応するときもあります。詳しくは各回の配点をご確認ください。

https://atcoder.jp/posts/1100

わたしは、F問題以降は実力的に取り組めていないため、影響はありませんでしたが、高レートでABCに参加される方には、影響があるかもしれません。

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

COMMENT

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

CAPTCHA