はい。
AtCoder Beginner Contest 183
oooo-- 843(+26) 上げ。たまには4桁パフォ出ました。。
今回は先に問題をD問題から眺めたのですがB問題がすぐには分からなくてかなり混乱してノー提出撤退も検討しました。しませんでしたけど。
A - ReLU
n=int(input())
print(max(0,n))
脳が問題文の数式を拒絶していましたがmax()で囲って負の時に0すれば大丈夫そうかなと思うことにしてなんとかAC。
B - Billiards
x1,y1,x2,y2=map(int,input().split())
if x1<x2: a,b,c,d=x1,y1,x2,y2
else: a,b,c,d=x2,y2,x1,y1
t=abs(a-c)
p=b/(b+d)*t
print(a+p)
最初は全く方針が立たず混乱しました。sin,cosとかの計算要求まではありえないはずだし、要求されるなら諦めたほうがいいかなでだらだら悩みました。突然にyの高さの比率で反射の位置が決まる気がしました。サンプル試して座標に負の値があるか、左右関係とかも気にして大丈夫そうで提出してAC。
C - Travel
import itertools
n,k=map(int,input().split())
p=[i for i in range(1,n)]
t=[]
for i in range(n):
l=[int(i) for i in input().split()]
t.append(l)
ans=chk=0
for i in list(itertools.permutations(p)):
chk=0
chk+=t[0][i[0]]
chk+=t[i[-1]][0]
for j in range(n-2):
chk+=t[i[j]][i[j+1]]
if chk==k:
ans+=1
print(ans)
itertoolsで移動パターン列挙。あとスタートとゴールは必ず都市1なので列挙パターンには含まず固定でコストを計算しました。
D - Water Heater
n,w=map(int,input().split())
d=[0]*200005
for i in range(n):
s,t,p=map(int,input().split())
d[s]+=p
d[t]-=p
chk=0
for i in range(200004):
chk+=d[i]
if chk>w:
print("No")
exit()
print("Yes")
imos法はかなり久しぶりに使った気がします。直近の過去回でD問題にセグ木使うとかあった後なのでかなりなんかこう大丈夫か不安になりつつも考察漏れはないはずと思い込んで提出のAC。