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)


うーん、途中までやったけどだめでした
可変の組み合わせをどうやって作るか考えないとなぁ