リアルタイムに解けた問題
A - Raise Both Hands
問題文
高橋君はたこ焼きを作ってすぬけ君に振る舞うことにしました。高橋君はすぬけ君に、たこ焼きを食べたいならば左手のみを挙げて、そうでないならば右手のみを挙げるように指示しました。
すぬけ君が挙げた手の情報は整数$L,R$によって与えられます。すぬけ君は$L=1$のとき、またそのときに限り左手を挙げており、$R=1$のとき、またそのときに限り右手を挙げています。すぬけ君は指示に従わず、両手を挙げることも手を挙げないこともあります。
すぬけ君が片方の手のみを挙げている場合、すぬけ君がたこ焼きを食べたいならばYes
を、そうでないならばNo
を出力してください。すぬけ君が両手を挙げているか、手を挙げていないときはInvalid
と出力してください。
ただし、すぬけ君が片方の手のみを挙げている場合は必ず指示にしたがった行動を取っているものとします。
制約
- $L,R$は0または1
アルゴリズム
$L,R$の値に応じて条件を分岐し、それぞれに適した処理を行う。
ソースコード
L, R = map(int, input().split())
if (L == 1 and R == 1) or (L == 0 and R == 0):
print("Invalid")
elif (L == 1 and R == 0):
print('Yes')
elif (L == 0 and R == 1):
print("No")
B - Binary Alchemy
問題文
$N$種類の元素があり、元素には$1,2,...,N$の番号が付けられています。
元素どうしは合成させることができ、元素$i$と元素$j$を合成すると$i\geq j$のとき元素$A_{i,j}$に、$i\leq j$のとき元素$A_{i,j}$に変化します。
元素$1$に対して元素$1,2,...,N$をこの順に合成したとき、最終的に得られる元素を求めてください。
制約
- $1\leq N \leq 100$
- $1\leq A_{i,j} \leq N$
- 入力される値はすべて整数
アルゴリズム
問題文に記載の仕様をそのままif文で表現する。
ソースコード
N = int(input())
A = [list(map(int, input().split())) for _ in range(N)]
element = 1
for i in range(N):
if element >= i+1:
element = A[element-1][i]
else:
element = A[i][element-1]
print(element)