M-SOLUTIONS プロコンオープン 2020に参加しました
最近のAtCoderはABCが少ないですね!
ということで、企業コンに参加
https://atcoder.jp/contests/m-solutions2020/tasks
Cまでは解けましたが、Dで躓き時間切れ
また復讐じゃぁ・・
A. Kyu in AtCoder
何かきれいにできるか。。。と画策するも、特に思い浮かばず。
そのまま条件をべた書きして終わり
a = int(input()) if 400 <= a and a <= 599: print(8) elif 600 <= a and a <= 799: print(7) elif 800 <= a and a <= 999: print(6) elif 1000 <= a and a <= 1199: print(5) elif 1200 <= a and a <= 1399: print(4) elif 1400 <= a and a <= 1599: print(3) elif 1600 <= a and a <= 1799: print(2) elif 1800 <= a and a <= 1999: print(1)
B. Magic 2
試行回数も多くなかったので、そのままfor文で回して解きました
一部条件ミス(等号入れ忘れ)してしまったのが痛かった
A, B, C = map(int, input().split()) K = int(input()) for i in range(K): if A >= B: B *= 2 elif B >= C: C *= 2 #print(i, A, B, C) if A < B and B < C: print("Yes") else: print("No")
D. Road to Millionaire
これは一部がWAとなってしまい、提出できませんでした
自分の脳内ではいい感じにいってたんだけどなぁ・・・
こうやって一部のテストがうまくいかなかった場合って、大抵解ききれない・・・
何かうまい手はあるのかしら(限界値、境界値あたりを考えてきちんと自分でテストする?)
ダメだったコードを乗せときます
N = int(input()) A = list(map(int, input().split())) K = [0]*N s = 1000 kab = 0 if A[0] < A[1]: K[0] = -1 elif A[0] > A[1]: K[0] = 1 for i in range(1, N): if A[i-1] < A[i]: K[i] = 1 # 1は最高値 if K[i-1] == 1: K[i-1] == 0 elif A[i-1] > A[i]: K[i] = -1 # -1は最低値 if K[i-1] == -1: K[i-1] == 0 #print(K) M = list(K) for i in range(1, N): #print(-i, K[-i]) if K[-i] == 1: break elif (K[-i] == -1): K[-i] = 0 #print(K) for i in range(N): if K[i] == -1: kab = s // A[i] s -= A[i]*kab elif K[i] == 1: s += A[i]*kab kab = 0 print(s)
今回はとりあえずCまで解けたので、よしとします
あぁ、でも色々覚えていかないといつまでもこのスコアのままだなぁ・・・どうしよう
以上