AtCoder Grand Contest 015

はい。
https://atcoder.jp/contests/agc015

A - A+...+B Problem

PyPy3

n,a,b=map(int,input().split())
if (n==1 and a!=b) or (a>b):
    print(0)
else:
    print((b+b*(n-2)+a)-(b+a+a*(n-2))+1)

N個の整数で最小Aと最大Bで構成して総和が最小になるのは最大Bが1つで他全部最小A。最大になるのは最小Aが1つで他全部最大B。Aを1ずずつ加算していけば最小から最大まで全部作れます。あとはサンプル2,3のように条件が矛盾してたりするものの対策をすれば大丈夫だと思う。

B - Evilator

PyPy3

s=input()
t=len(s)
ans=0
for a,i in enumerate(s):
    if i=="U":
        ans+=t-a-1
        ans+=a*2
    else:
        ans+=(t-a-1)*2
        ans+=a
print(ans)

1階はUとN階はDなので他の階には1回乗れば移動出来る。中間の階はUなら上側の階には1回で、下側の階には2回で移動出来る。1階が必ずUであることが保証されているので移動出来ないパターンは存在しないです。中間がDならその逆です。
C問題以降はいつかそのうちに