AtCoder Beginner Contest 176 / Python
結果
下げたぁ、地力のみではこの辺が限界っぽいねぇ。
やっぱり緑はちゃんと勉強しないとダメか。
ちょっとだけ言い訳するとね、
アベマ将棋チャンネルでアベマTVトーナメント決勝を見てたら、
いつのまにか21時過ぎていたものだから、出遅れたんよね!ね!
問題と解答と勉強
提出したコード
import math N, X, T = map(int, input().split()) print(math.ceil(N / X)*T)
提出したコード
N = [int(i) for i in input()] if sum(N) % 9 == 0: print("Yes") else: print("No")
提出したコード
N, S, *A = map(int,open(0).read().split()) ans = 0 for i in A: if i > S: S = i else: ans += S -i print(ans)
前回覚えた open(0).read()
を使ってみた。
特に意味は無いけどね。
でもこれ出来る人っぽくて好き。
これさ、難しくない?
というか、迷路問題苦手なんよね。
探索がちゃんと作れない。勉強せんとなぁ・・・。
という訳で、答えみてもようわからんかった。
TLEのやつ
import numpy as np H, W, M = map(int, input().split()) h = np.array([0]*H) w = np.array([0]*W) bom = np.array([[0]*W]*H) for _ in range(M): i, j = map(int, input().split()) h[i-1] += 1 w[j-1] += 1 bom[i-1][j-1] += 1 ans = [] for i in range(H): ans.append(max(w + h[i] - bom[i])) print(max(ans))
答えは出るんだけど、規格外に遅い。
勉強用
h,w,n=map(int,input().split()) H=[0]*h W=[0]*w L=[(0,0)]*n for i in range(n): a,b=map(int,input().split()) L[i]=(a,b) H[a-1]+=1 W[b-1]+=1 h_max=max(H) w_max=max(W) ans=h_max+w_max cnt=0 for l in L: if H[l[0]-1]==h_max and W[l[1]-1]==w_max: cnt+=1 if H.count(h_max)*W.count(w_max)==cnt: ans-=1 print(ans)
あー、やろうとしてることは同じね。
最後のとこで工夫が1つ足りて無かったって感じか。
というかそれで時間大丈夫になるんか。ほぉー。
勉強用
*r,=c=[0]*9**6 _,*z=[[*map(int,t.split())]for t in open(0)] for y,x in z:r[y]+=1;c[x]+=1 print(-(r.count(h:=max(r))*c.count(w:=max(c))==sum(h+w==r[y]+c[x]for y,x in z))+h+w)
ヤバいやつ(良い意味で)だとこんなんがあるようだ。
えー、これで出るんかぁ。ほぉー・・・・
見てない!
以上!