AtCoder Beginner Contest 189 / Python


f:id:penyooo:20200112235130p:plain


  • 独学者です。( 2019 / 9 ~ )
  • AtCoder の問題に Python で取り組んでいます。
  • ABC で4問目(茶か緑)まで解けることを目標にしています。

完全に独学なのでコードは酷いと思います。

AtCoder やってる方、お気軽にコメントください。





結果



f:id:penyooo:20210123233710p:plain

前回間違ってキーエンスのやつ出ちゃったら、

1問も解けないっていうね。

そういう場合は不参加だったってことになりませんかね・・・

見なかったことにはしてくれない厳しさ。



今回も3問だったから、こりゃダメだと思ったけど。

思ったほどのダメさではなかったので助かった。

とは言え0問提出で落とした分を全然取り返せていない。

あんま変なことしてると灰色に戻りそう・・・やべぇぜ。





問題と解答と勉強


atcoder.jp



提出したコード
if len(set(input())) == 1:
    print("Won")
else:
    print("Lost")









atcoder.jp



提出したコード
N, X = map(int, input().split())
x = 0
 
for i in range(N):
    V, P = map(int, input().split())
    x += V * P
    if x > X*100:
        print(i+1)
        exit()

print("-1")









atcoder.jp



ここで、めちゃくちゃ苦戦してしまった。

ラスト10分まで粘って、どうにかこうにか通した。

提出したコード
N = int(input())
A = list(map(int, input().split()))
ans = 0
 
for i in range(N):
    m = A[i]
    if ans < m:
        ans = m
    for j, a in enumerate(A[i+1:]):
        if m > a:
            m = a
        if ans < m*(j+2):
            ans = m*(j+2)
 
print(ans)



これもね結局 Python だと通らなくて、PyPyで通してるのよね。

何かちょっとズルしたような気持ち。



TLE のやつ
N = int(input())
A = list(map(int, input().split()))
ans = 0
 
for i in range(N):
    for j in range(i+1,N+1):
        a = min(A[i:j])*(j-i)
        if a > ans:
            ans = a
 
print(ans)



最初こういうの書いてたんだけど。

これはめちゃめちゃ遅いらしいんよね。

PyPy だろうと何だろうと通るようなもんじゃない。



ちなみに正解はこうらしい。

N = int(input())
A = [int(i) for i in input().split()]

ans=0

for i in range(N):
    m = A[i]
    for j in range(i,N):
        m = min(A[j], m)
        ans = max(ans, m*(j-i+1))
 
print(ans)



こう見ると惜しかったね。

だいたい正解説ある。







atcoder.jp



これはね、3つ目に時間掛かり過ぎて見れなかったけど。

どうなんでしょう、今考えてみよう。

んーー、ようわからん。

というか試験時間終わってると考える気力萎え気味。

しかしこいつ、プロからしたら簡単なようで。

プロの所業
T = F = 1

for _ in range(int(input())):
    if input() == "AND":
        F += T + F
    else:
        T += T + F

print(T)



これで終わりらしい。

ホンマかいな。

はーーん、思い付かんなぁ。









atcoder.jp





atcoder.jp



5,6は安定のパス。

恒例の見てもないやーつ。