AtCoder ABC 165の復習
今日は165です。
Cまで自力でできるかなぁ??
A
AからBまでfor文を回して該当するかどうか確認
K = int(input()) A, B = list(map(int, input().split())) ans = "NG" for i in range(A, B+1): #print(i) if i % K == 0: ans = "OK" break print(ans)
B
複利計算だが、利子の計算で小数点以下切り捨てとなっているのでintで丸める
X = int(input()) Y = 100 count = 0 while (X > Y): Y += int(0.01*Y) count += 1 print(count)
C
あんまり言ってる意味が分からないので具体例で
正整数 N(=3), M(=4), Q(=3) と、4つの整数の組 ( ai, bi, ci, di ) Q(=3)組が与えられます。
3つの数字からなり、順に一つ前の数値以上の値をとる数列(最大値はM(=4))を考える
この時、(ai(=1) - bi(=3) = ci(=3)) の時、di(=100)点得られる 該当しなければ0点
3 4 3
1 3 3 100
1 2 2 10
2 3 2 10
よって、まずはAの組み合わせを全探索するためにAのまとまりを用意する
それらに対して点数を確認し、大きければ数値を保存する
最後に保存した数値が答えになる
N, M, Q = map(int, input().split()) a = [] ref = [] ans = 0 for i in range(Q): tmp = list(map(int, input().split())) ref.append(tmp) #print("----tmp----") #print(ref) for i in range(1, M+1): for j in range(i, M+1): for k in range(j, M+1): a.append([i, j, k]) #print("---a---") print(a) for i in a: sum = 0 for j in ref: #print("---i, j---") #print(i, j) #print(len(i)) #if len(i)>=j[0] and len(i)>=j[1]: #print(i[j[1]], i[j[0]], j[2]) if i[j[1]]-i[j[0]] == j[2]: sum += j[3] #print("---sum---") #print(sum) if ans < sum: ans = sum print(ans)
うーん、途中までやったけどだめでした
可変の組み合わせをどうやって作るか考えないとなぁ