ABC310 python Atcoderの記録

問題はこちら
3完

A,Bは愚直な実装
Cは問題文の”反転して一致するときも同じとみなす”の部分が面倒
→与えられた文字列をすべて辞書順にして管理することで反転を考えなくてすむ

##################### A
N, P, Q = list(map(int, input().split()))
D =  list(map(int, input().split()))
print(min(P, Q + min(D)))
##################### B
N, M= list(map(int, input().split()))
P =[]
C =[]
F =[]
for i in range(N):
    ln = list(map(int, input().split()))
    P.append(ln[0])
    C.append(ln[1])
    F.append(set(ln[2:]))
# print(F)
flag = "No"
for i in range(N):
    for j in range(N):
        if P[i] >= P[j]:
            # print(i,j,"Price")
            if F[j] >= F[i]:
                # print(i,j,"F")
                if P[i] > P[j] or len(F[j]) > len(F[i]):
                    # print(i,j,"Yes")
                    flag = "Yes"
                    break
    if flag == "Yes":
        break
print(flag)

##################### C
N = int(input())
ln = set([])
for i in range(N):
    line = input()
    ln.add(min(line,line[::-1]))
print(len(ln))