はじめに
前回からrateの変動はありません。
誰かに書けと言われたような気がした。
今回はCまで解けました。今回のようなCはわりとできる?
新学期が始まってしまった...
A問題
考えたこと
感覚的に小さい順にsortしたら、値が最小になりそう。ということで実装
a = list(map(int,input().split()))
a.sort()
ans = abs(a[1]-a[0]) + abs(a[2] - a[1])
print(ans)
問題文のtaskは3個と読み落としていてfor文を使うのかと思って苦しんでました。問題はしっかり読みましょう
B問題
考えたこと
どうやって回転を実装するかを悩んでいたら、同じ文を二つ連結して、そのなかに探したい文字列があればよいのではと思って実装した。
s = str(input())*2
t = str(input())
if t in s:
print('Yes')
else:
print('No')
文字列が入っているかどうかを判定するのはinを使うということを初めて知った。
C問題
考えたこと
どうやってm mod a[i]が最大値となるようなmを設定するかが鍵。
m = a[i] * a[i+1] *......*a[n]とaの要素を全て掛けると全てのaで割きれる。
ということは、aの要素を全て掛けたものから1を引けばいいはず。そうすれば、余りが最大になる。
n = int(input())
a = list(map(int,input().split()))
ans = 0
m = 1
for i in range(0,n):
m *= a[i]
m -= 1
for j in range(0,n):
ans += m % a[j]
print(ans)
最初にfor文でmを求めてあとは、それぞれの余りを計算するだけです。
まとめ
今回は、3問解けたのでうれしい。
学校が始まって、模試とかがあるので投稿頻度は落ちます。