QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#265746#5103. Fair DivisionjuampiTL 0ms0kbPython3844b2023-11-25 20:48:322023-11-25 20:48:33

Judging History

你现在查看的是最新测评结果

  • [2023-11-25 20:48:33]
  • 评测
  • 测评结果:TL
  • 用时:0ms
  • 内存:0kb
  • [2023-11-25 20:48:32]
  • 提交

answer

import math

while True:
    try:
        N, M = map(int, input().split())
        if N > 200:
            N = 200

        p, q = 0, 0
        pw = [0, 0]
        for q in range(2, int(1e6)):
            pw.append(math.pow(q, N))
            for p in range(1, q):
                d = pw[q] - pw[q - p]
                if d > 1.1 * M * q:
                    if p == 1:
                        raise Exception
                    continue
                qp = 1
                pp = 1
                for i in range(N):
                    qp *= q
                for i in range(N):
                    pp *= (q - p)
                if M * p % (qp - pp) == 0:
                    raise StopIteration

        print(p, q)
    except StopIteration:
        continue
    except Exception:
        print("impossible")

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 0
Time Limit Exceeded

input:

13 382475111752106101

output:

impossible
impossible
impossible
impossible
impossible
impossible
impossible
impossible
impossible
impossible
impossible
impossible
impossible
impossible
impossible
impossible
impossible
impossible
impossible
impossible
impossible
impossible
impossible
impossible
impossible
impossible
impossible
imp...

result: