結果

問題 No.532 Possible or Impossible
ユーザー cleantted
提出日時 2017-06-24 00:20:41
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
WA  
実行時間 -
コード長 973 bytes
コンパイル時間 103 ms
コンパイル使用メモリ 12,672 KB
実行使用メモリ 10,752 KB
最終ジャッジ日時 2024-10-03 04:01:32
合計ジャッジ時間 1,449 ms
ジャッジサーバーID
(参考情報)
judge3 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 21 WA * 2
権限があれば一括ダウンロードができます

ソースコード

diff #

#N, M = list(map(int, input().split()))
N, M = [1, 0]
lim0 = 0.000001
nums0 = tuple([i + 1 for i in range(N)])
#print("nums0", nums0)
stack = {nums0: {M}}

if nums0 == (1) & M ==0:
    print("Impossible")
    exit()

while stack != {}:
    nums, Ms = stack.popitem()
    #print(nums, set(nums))
    nums = set(nums)
    if nums == set():
        for j in Ms:
            if abs(j) < lim0:
                print("Possible")
                exit()
    else:
        for ni in nums:
            for mi in Ms:
                temp = {mi + ni, mi * ni, mi - ni, ni - mi, mi/ ni}
                if mi != 0:
                    temp.add(ni / mi)
                try:
                    #print("curent",stack[tuple(nums - {ni})], "addition", temp )
                    stack[tuple(nums - {ni})] = stack[tuple(nums - {ni})] | temp
                except KeyError:
                    stack[tuple(nums - {ni})] = temp

                #print("stack: ", stack)

print("Impossible")
0