ABC-373
A
https://atcoder.jp/contests/abc373/tasks/abc373_a
#愚直
cnt = 0for i in range(12): w = Word().content if len(w)==i+1: cnt+=1print(cnt)
解法
として すると題意を満たせる。
B
https://atcoder.jp/contests/abc373/tasks/abc373_b
#愚直
a = "BCDEFGHIJKLMNOPQRSTUVWXYZ"s = Word().contentpoz = s.index("A")ans = 0for i in a: ans += abs(poz-s.index(i)) poz = s.index(i)print(ans)
解法
の初期値を とし、 とし、 とした後、 に更新すると題意を満たせる。
C
https://atcoder.jp/contests/abc373/tasks/abc373_c
#愚直
Python
n = Integer().content a = max(IntegerList().content) b = max(IntegerList().content) print(a+b)
C++
ll n; scanf("%lld", &n);ll a[n]; rep(i,0,n) scanf("%lld", &a[i]);ll b[n]; rep(i,0,n) scanf("%lld", &b[i]);
dsort(a, n);dsort(b, n);
cout << a[0]+b[0] << endl;
解法
は自明なので、題意を満たすことができる。
D
https://atcoder.jp/contests/abc373/tasks/abc373_d
#DFS/BFS
n,m = Integer().contentug = UndirectedGraph(n,m)visited = [False]*nans = [0]*n
## dfsfor i in range(n): if visited[i]: continue currentNode = [i] visited[i] = True while currentNode: u = currentNode.pop() for v,w in ug.graph[u]: if not visited[v]: visited[v] = True ans[v] = ans[u]+w currentNode.append(v)print(*ans)
解法
有向グラフは双方向のコストのうち片方の正負を逆転させることで無向グラフに落とすことができる。 ある頂点に関して、初期値を決めて、 することで繋がっている頂点の値を一意に確定させることができる。
E