結果
問題 | No.2358 xy+yz+zx=N |
ユーザー |
![]() |
提出日時 | 2023-07-03 00:30:11 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 1,046 ms / 2,000 ms |
コード長 | 1,064 bytes |
コンパイル時間 | 178 ms |
コンパイル使用メモリ | 82,344 KB |
実行使用メモリ | 96,820 KB |
最終ジャッジ日時 | 2024-07-16 20:22:18 |
合計ジャッジ時間 | 7,492 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 10 |
ソースコード
import bisectimport copyimport decimalimport fractionsimport heapqimport itertoolsimport mathimport randomimport sysimport timefrom collections import Counter,deque,defaultdictfrom functools import lru_cache,reducefrom heapq import heappush,heappop,heapify,heappushpop,_heappop_max,_heapify_maxdef _heappush_max(heap,item):heap.append(item)heapq._siftdown_max(heap, 0, len(heap)-1)def _heappushpop_max(heap, item):if heap and item < heap[0]:item, heap[0] = heap[0], itemheapq._siftup_max(heap, 0)return itemfrom math import gcd as GCDread=sys.stdin.readreadline=sys.stdin.readlinereadlines=sys.stdin.readlineswrite=sys.stdout.writeN=int(readline())ans_lst=[]for x in range(N+1):if 3*x*x>N:breakfor y in range(max(1,x),N+1):if 2*x*y+x*x>N:breakif (N-x*y)%(x+y)==0:z=(N-x*y)//(x+y)if y<=z:ans_lst+=list({(x,y,z),(x,z,y),(y,x,z),(y,z,x),(z,x,y),(z,y,x)})print(len(ans_lst))for x,y,z in ans_lst:print(x,y,z)