結果
問題 |
No.532 Possible or Impossible
|
ユーザー |
![]() |
提出日時 | 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 |
ソースコード
#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")