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)
