AtCoder Beginner Contest 071/AtCoder Regular Contest 081

はい。
https://atcoder.jp/contests/abc071

A - Meal Delivery

Python3

x,a,b=map(int,input().split())
print("A" if abs(x-a)<=abs(x-b) else "B")

x-aとx-bを比較。

B - Not Found

Python3

s=input()
ans=""
for i in range(97,123):
    ans+=chr(i)
for i in s:
    ans=ans.replace(i,"")
print(ans[0] if len(ans) else "None")

a-zの文字列を持っておいて、入力の文字列を先頭から読んでreplaceで消していく。残りの先頭か残りなしが解。 a-zの文字列を97,123で作ったけども、ord(a)とかで作ってる人がいらしたのでそっちのほうが楽だなー、と思ったので次回以降そうしようと思いました。

C - Make a Rectangle

Python3

n=int(input())
a=[int(i) for i in input().split()]
a.sort()
d={}
chk=0
for i in a[::-1]:
    if i in d:
        d[i]+=1
    else:
        d[i]=1
    if d[i]==4:
        print(i*i)
        exit()
    if d[i]==2 and chk==1:
        for j in d:
           if i!=j and d[j]>=2:
                print(i*j)
                exit()
    elif d[i]==2:
           chk=1
   
print(0)

ソートして大きい方から見て同じ数が4個か、2個2個出現したらその積が解。

D - Coloring Dominoes

PyPy3

mod=1000000007
n=int(input())
s=input()

d=[0]
for i in range(1,n):
    if s[i-1]==s[i]:
        d[-1]+=1
    else:
        d.append(0)
ans=[3,6][d[0]]
for i in range(1,len(d)):
    if d[i-1]==d[i]==1:
        t=3
    elif d[i-1]==1:
        t=1
    else:
        t=2
    ans=(ans*t)%mod
print(ans)

ドミノの2行目、入力のS2は使わないので無視してます。おそらくは1行目でドミノが縦か横かを判別できれば解が出ます。公式解説おすすめです。公式解説がいいです。
左から順番に見ていって縦なら0、横なら1という感じで事前準備でリスト作成します。縦横調べ終わったら塗り方が何通りであるかを計算します。
初期は一番左が縦なら3通り、横なら6通りで数え始めます。2番目以降のドミノはi-1番目とi番目次第で計算が異なります。 横横だと×3通り、横縦だと×1通り、それ以外は×2通りしてmodを取りながら右端まで見ると解になります。多分。