A~Cに回答できました.Dができそうでできず...
(最近,最初の30分以降問題が解けません)
A - Three Dice
$21- (a+b+c)$です.B - 180°
これも愚直に.最初''を忘れて整数と文字列を比較するミスをしました.S = list(input()) ans = [] for s in reversed(S): if s == '6': ans += '9' elif s == '9': ans += '6' else: ans += s print(''.join(ans))
C - Made Up
ちょっと悩みましたが,カウントすれば良さそうなことはすぐわかりました.つまり
\begin{aligned}
\begin{cases}
\, \mathrm{cnta}[j] = (A_{i} = j\text{となる$i$の個数}) \\
\, \mathrm{cntbc}[j] = (B_{C_{i}} = j\text{となる$i$の個数})
\end{cases}
\end{aligned}
とすれば,答えは\begin{cases}
\, \mathrm{cnta}[j] = (A_{i} = j\text{となる$i$の個数}) \\
\, \mathrm{cntbc}[j] = (B_{C_{i}} = j\text{となる$i$の個数})
\end{cases}
\end{aligned}
\begin{aligned}
\sum_{j=1}^{N} \mathrm{cnta}[j]\cdot \mathrm{cntbc}[j]
\end{aligned}
です.
\sum_{j=1}^{N} \mathrm{cnta}[j]\cdot \mathrm{cntbc}[j]
\end{aligned}
N = int(input()) A = list(map(int, input().split())) B = list(map(int, input().split())) C = list(map(int, input().split())) cnta = [0] * N for a in A: cnta[a - 1] += 1 cntbc = [0] * N for c in C: bc = B[c - 1] cntbc[bc - 1] += 1 print(sum([i*j for i, j in zip(cnta, cntbc)]))
D - aab aba baa
1文字目を決めると,小さな問題に帰着します.解法は以下:
aab aba baa [エイシングプログラミングコンテスト2021(AtCoder Beginner Contest 202) D] - はまやんはまやんはまやん
実装は,次がシンプルで良いです.
Submission #22806989 - AISing Programming Contest 2021(AtCoder Beginner Contest 202)