AtCoder Beginner Contest 188 / Python


f:id:penyooo:20200112235130p:plain


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

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

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





結果



f:id:penyooo:20210110232244p:plain

あれ?何か2回空いてしまっている。

というか下がるんかい。

3問目までまぁまぁ早く解けたと思ったんだけどなぁ。







問題と解答と勉強


atcoder.jp



提出したコード
X, Y = map(int, input().split())
 
if abs(X - Y) < 3:
    print("Yes")
else:
    print("No")









atcoder.jp



提出したコード
import numpy as np
 
N = int(input())
A = np.array(list(map(int, input().split())))
B = np.array(list(map(int, input().split())))
 
if np.sum(A*B) == 0:
    print("Yes")
else:
    print("No")









atcoder.jp



提出したコード
import numpy as np
 
N = int(input())
A = list(map(int, input().split()))
B = np.array(A)
 
for _ in range(N-1):
    B = np.maximum(B[::2],B[1::2])
   
print(A.index(min(B))+1)



何かこれ問題の意図を汲み取れて無い感がすごい。

優勝じゃなくて準優勝の番号を出す問題なのとか、何でだろう。

ちょっとプロのご意見を伺ってみよう。

n = int(input())
A = list(map(int, input().split()))
a = max(A[:2**(n-1)])
b = max(A[2**(n-1):])
print(A.index(min(a,b))+1)



あーー、そうか、シンプルになるねぇ。

でもやっぱり優勝でも準優勝でも変わらんよね、なんだろう。







atcoder.jp



これがね、全くわからんかった。

いつもなら、どうせTLEだって思いながらも例題だけなら通る。

みたいのは出来るんだけど、それすらわからんかった。

from collections import defaultdict as dd

N, C = map(int,input().split())
p = dd(int)

for i in range(n):
    a, b, c = map(int,input().split())
    p[a] += c
    p[b+1] -= c

r = t = d = 0

for i in sorted(p.keys()):
    r += (t if t<C else C)*(i-d)
    t += p[i]
    d = i

print(r)



あれぇ?答えみたらめっちゃ簡単な気がする。

特別に特殊な考え方とか全然無いのねぇ。





atcoder.jp



atcoder.jp



無理~、最早、当然の如く、毎回無理なので、書く意味があるのか。