キーエンスプログラミングコンテスト2023秋(AtCoder Beginner Contest 325)の解説記事です。
目次
ABC325 A – Takahashi san
問題
問題文の要約は以下の通りです。
問題の要約
ある人の苗字と名前がそれぞれ文字列 \(S\) , \(T\) として与えられたとき、苗字、スペース(
)、敬称(san
)をこの順に連結した文字列を出力せよ。
解説1
+
演算子で文字列の結合を行う。
解説
\(S\) \(T\) を文字列として受け取ります。
# 入力
S,T=input().split()
苗字、スペース(
)、敬称(san)を結合して変数ans
に格納します。
# 苗字、スペース( )、敬称(san)を連結
ans=S+' '+'san'
ans
を出力します。
# 出力
print(ans)
解答
# 入力
S,T=input().split()
# 苗字、スペース( )、敬称(san)を連結
ans=S+' '+'san'
# 出力
print(ans)
解説2
print
関数で文字列の結合を行う。
解説
print
関数の引数に複数の文字列をカンマ区切りで指定すると、スペース(
)で区切られて出力されます。
したがって、print(S,'san')
とすれば、苗字、スペース(
)、敬称(san
)を連結した文字列が出力されます。
# 出力
print(S,'san')
解答
# 入力
S,T=input().split()
# 出力
print(S,'san')
ABC325 B – World Meeting
問題
問題文の要約は以下の通りです。
問題の要約
\(N\) 個の拠点があり、それぞれの拠点は \(W_i\) 人の社員が所属、標準時からの時差が \(X_i\) 時間であるとする。
1時間の会議を開きたい。それぞれの拠点は9:00-18:00 の会議のみ参加できるとき、会議参加者の最大値を求めよ。
解説
24時間のうちの連続する9時間の区間で参加者の最大人数を求める。
解説
\(N\) をint
型として受け取ります。
# 入力
N = int(input())
標準時からの時差ごとに人数を格納するlistを用意する。
このリストに入力から人数を加算します。
# 標準時からの時差ごとの人数
cnt = [0 for _ in range(24)]
for _ in range(N):
# 入力
W, X = map(int, input().split())
# 時間に人数を加算する
cnt[X] += W
24時間のうちの連続する9時間の区間で参加者の最大人数を求めます。
# 最大の参加人数
max_sum = 0
# 24時間分ループを回す
for i in range(24):
# 現在の時間から連続する9時間の人数の合計を計算する
current_sum = 0
for j in range(9):
current_sum += cnt[(i + j) % 24]
# 計算した合計人数がこれまでの最大値よりも大きければ、最大値を更新する
max_sum = max(max_sum, current_sum)
# 出力
print(max_sum)
解答
# 入力
N = int(input())
# 標準時からの時差ごとの人数
cnt = [0 for _ in range(24)]
for _ in range(N):
# 入力
W, X = map(int, input().split())
# 時間に人数を加算する
cnt[X] += W
# 最大の参加人数
max_sum = 0
# 24時間分ループを回す
for i in range(24):
# 現在の時間から連続する9時間の人数の合計を計算する
current_sum = 0
for j in range(9):
current_sum += cnt[(i + j) % 24]
# 計算した合計人数がこれまでの最大値よりも大きければ、最大値を更新する
max_sum = max(max_sum, current_sum)
# 出力
print(max_sum)