AtCoder Regular Contest 113 - AtCoder 3問 image

A - ABC image

  • A,B,Cのすべてが210**5の範囲を動くと810**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)