Submission #3009666

Source Code Expand

Copy
```# -*- coding: utf-8 -*-
import bisect
import heapq
import math
import random
import sys
from pprint import pprint
from collections import Counter, defaultdict, deque
from decimal import ROUND_CEILING, ROUND_HALF_UP, Decimal
from functools import lru_cache, reduce
from itertools import combinations, combinations_with_replacement, product, permutations
from operator import add, mul, sub

sys.setrecursionlimit(10000)

return int(input())

return list(map(int, input().split()))

return float(input())

return list(map(float, input().split()))

return input().strip()

return list(map(str, input().split()))

def error_print(*args):
print(*args, file=sys.stderr)

def mt(f):
import time

def wrap(*args, **kwargs):
s = time.time()
ret = f(*args, **kwargs)
e = time.time()

error_print(e - s, 'sec')
return ret

return wrap

@mt
def slv(N, S):
if S == N:
return N + 1

def f(b, n):
if n < b:
return n
return f(b, n//b) + n % b

for b in range(2, int(math.sqrt(N)) + 1):
s = f(b, N)
if s == S:
return b

for p in range(1, int(math.sqrt(N))):
b = (N - S + p) // p
s = f(b, N)
if s == S:
return b

return -1

def main():

print(slv(N, S))

if __name__ == '__main__':
main()
```

#### Submission Info

Submission Time 2018-08-15 10:15:14+0900 D - 桁和 / Digit Sum patahene PyPy3 (2.4.0) 0 1626 Byte RE

#### Test Cases

Set Name Score / Max Score Test Cases
Case Name Status Exec Time Memory