A
解法
B
解法
C
URL→ https://atcoder.jp/contests/abc353/tasks/abc353_c
#尺取り法 #数学
a = sorted(IntegerList().content)
sum, count, guard = 0, 0, n
for i in range(n): sum += (n-1)*a[i]
while i<guard-1 and a[i]+a[guard-1]>=100000000: guard-=1
print(sum-(count*100000000))
解法
まず i=1∑N−1j=i+1∑N(Ai+Aj)=(N−1)i=1∑NAi という風に次数を下げることができます。
1≤i≤5 のとき
A1+(A2,...,A5)
A2+(A3,...,A5)
A3+(A4,...,A5)
A4+(A5)
∴A1:4項,A2:4項,A3:4項,A4:4項,A5:4項 となり、
それぞれ (N−1) 項出てくることがわかる。
その後、Ai+Aj≥108 となる j を尺取り法で求めることで解を求めることができます。
D
解法
E
解法