AtCoder Tenka1 Programmer Beginner Contest 2019

A - On the Way

a, b, c = [int(n) for n in input().split()]

x = min([a,b])
y = max([a,b])

if x <= c and c <= y:
    print('Yes')
else:
    print('No')

B - *e**** ********e* *e****e* ****e**

n = int(input())
s = input()
k = int(input())

a = s[k - 1]

result = [a if s[i] == a else '*' for i in range(n)]
print(''.join(result))

C - Stones

「黒い石のすぐ右に白い石があるような箇所がない」ならば、有り得るのは「左側は全て白、右側は全て黒」という状態だけです。この状態は更に「左から n 番目まで白」の場合に分けることができます。よって:

  1. 左から n 番目までに存在する黒石の数 b[n] をカウント
  2. n 番目より右に存在する白石の数 w[n] をカウント
  3. b[n] + w[n]n についての最小値が答え
n = int(input())
s = input()

def black():
    result = [0] * n
    count = 0
    for i in range(n):
        if s[-i-1] == '.':
            count += 1
        result[-i-1] = count
    return result + [0]

def white():
    result = [0] * n
    count = 0
    for i in range(n):
        if s[i] == '#':
            count += 1
        result[i] = count
    return [0] + result

num = [x + y for x,y in zip(black(), white())]
result = min(num)

print(result)

D - Three Colors

解けず