1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

C - Airport Code

問題

考えたこと

まず、$T$を小文字にします。次に$T[0]$を$S$で探索ヒットしたインデックスを$fst$に格納、fstの次からをループを再開し$T[1]$を探索、インデックスを$sec$に格納、最後に$thd$を格納とインデックスを保持していく。
この時、

  • $fst, sec, thd$全てに数値が格納されていれば、一つ目の条件に該当し、"Yes"
  • $fst, sec$にのみ数値が格納されていて、$t[2]==x$なら二つ目の条件に該当し、"Yes"
  • それ以外で"No"
    となる。

ACコード

c.py
s = input()
t = input()
t = t.lower()

fst, sec, thd = -1, -1, -1
for i in range(len(s)):
    if s[i] == t[0]:
        fst = i
        break
for i in range(fst + 1, len(s)):
    if s[i] == t[1]:
        sec = i
        break
for i in range(sec + 1, len(s)):
    if s[i] == t[2]:
        thd = i
        break

if fst != -1 and sec != -1 and thd != -1:
    exit(print("Yes"))
elif fst != -1 and sec != -1 and thd == -1 and t[2] == "x":
    exit(print("Yes"))
else:
    exit(print("No"))

D - Divide Interval

問題

考えたこと

初期値を$L, R$、各状態を$l,r$で表します。
考え方としては、初期値の$L$が$R$になるように各状態の$l$を$R$にどんどん近づけていくことを考えました。また、各処理は$l$の偶奇で違うため処理を分けています。
まず、$l$が奇数の時、$2^0$と入れるしかなく解答に$(l,\ l+1)$を追加、$l = l + 1$と動きます。
次に、$l$が偶数の時、

\begin{align}
&l = 2^i j, \ r = 2^i(j+1) \\ 
&\therefore \ r =2^i\bigg(\frac{l}{2^i} + 1\bigg)
\end{align}

より、$i$を$60$から減らしていったとき$l \ \% \ 2^i = 0$と$r \leq R$を満たす、最初の$(l,\ r)$を解答に追加します。最後に出力して終わりです。

ACコード

d.py
# lは常に動かすので初期値からlとしてしまっています。
l, R = map(int, input().split())
cnt = 0
S = []

while l != R:
    if l % 2 == 0:
        for i in range(60, -1, -1):
            if l % (2**i) == 0 and (r := (2**i) * (l // (2**i) + 1)) <= R:
                S.append((l, r))
                l = r
                break
    else:
        S.append((l, l + 1))
        l += 1

print(len(S))
for s in S:
    print(*s)
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?