HHKBプログラミングコンテスト2023(AtCoder Beginner Contest 327)の解説記事です。
ABC327 A – ab
問題
問題文の要約は以下の通りです。
問題の要約
英小文字からなる長さ \(N\) の文字列 \(S\) が与えられたとき、 \(S\) の中でa
とb
が隣接する箇所があればYes
を、なければNo
を出力せよ。ただし、a
とb
の順序は問わない。
制約
・\(2 \le N \le 100\)
・\(S\) は英小文字からなる長さ \(N\) の文字列
入力
\(N\)
\(S\)
出力
\(S\) の中で a
と b
が隣接する箇所があれば Yes
を、なければ No
を出力せよ。
解説
\(S\) にab
またはba
が含まれているか判定する。
解説
まず入力 \(N\) をint
型、\(S\) を文字列として受け取ります。
# 入力
N=int(input())
S=input()
\(S\) にab
またはba
が含まれているか判定し、含まれていれば Yes
を、そうでなければ No
を出力します。
# 出力
print('Yes' if 'ab' in S or 'ba' in S else 'No')
解答
# 入力
N=int(input())
S=input()
# 出力
print('Yes' if 'ab' in S or 'ba' in S else 'No')
ABC327 B – A^A
問題
問題文の要約は以下の通りです。
問題の要約
整数 \(B\) が与えられたとき、 \(A^A = B\) となる、正の整数 \(A\) が存在するならばその値を、存在しないならば-1
を出力せよ。
制約
・\(1 \le B \le 10^{18}\)
・\(B\) は整数
入力
\(B\)
出力
\(A^A = B\) となる、正の整数 \(A\) が存在するならばその値を、存在しないならば-1
を出力せよ。
解説
条件を満たす範囲で \(A\) を全探索する。
解説
\(1 \le B \le 10^{18}\) を満たす \(A\) は \(1 \le A \le 15\) になります。
正確な値を計算せずに \(1 \le A \le 20\) の範囲で計算しても問題ありません。
まず入力 \(B\) をint
型として受け取ります。
# 入力
B=int(input())
\(1 \le A \le 20\) の範囲で \(A^A = B\) となるか判定します。
\(A^A = B\) を満たすならばその値を、存在しないならば-1
を出力します。
# Aを1~20の範囲で全探索する
for A in range(1,20):
# 存在した場合はAを出力
if A**A ==B:
print(A)
exit()
# 存在しない場合
print(-1)
解答
# 入力
B=int(input())
# Aを1~20の範囲で全探索する
for A in range(1,20):
# 存在した場合はAを出力
if A**A ==B:
print(A)
exit()
# 存在しない場合
print(-1)