NISHIO Hirokazu[Translate]
ARC113
3問

A,B,Cのすべてが2*10**5の範囲を動くと8*10**15で間に合わない
だけどAが2の時はBは半分の範囲しか動かないし、A,Bが決まればCの範囲は計算で決まる
py
def main(): K = int(input()) ret = 0 for A in range(1, K + 1): maxB = K // A for B in range(1, maxB + 1): maxC = maxB // B ret += maxC print(ret)

py
def main(): A, B, C = map(int, input().split()) doubling = [B % 20] for i in range(32): doubling.append( (doubling[-1] ** 2) % 20 ) BC = 1 for i in range(32): if C % 2: BC *= doubling[i] BC %= 20 C //= 2 if BC == 0: BC = 20 ret = (A % 10) ** BC ret %= 10 print(ret)

py
def main(): S = input().strip().decode('ascii') from collections import defaultdict count = defaultdict(int) ret = 0 prev = None count[S[-1]] += 1 count[S[-2]] += 1 for i in reversed(range(len(S) - 2)): if S[i] != prev and S[i] == S[i + 1] != S[i + 2]: d = (len(S) - 2) - i d -= count[S[i]] - 1 # except S[i + 1] ret += d count = defaultdict(int) p = len(S) - i count[S[i]] = p prev = S[i] else: count[S[i]] += 1 prev = None print(ret)

"Engineer's way of creating knowledge" the English version of my book is now available on [Engineer's way of creating knowledge]

(C)NISHIO Hirokazu / Converted from [Scrapbox] at [Edit]