結果
問題 | No.2358 xy+yz+zx=N |
ユーザー | 👑 SPD_9X2 |
提出日時 | 2023-06-23 23:11:56 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 195 ms / 2,000 ms |
コード長 | 953 bytes |
コンパイル時間 | 159 ms |
コンパイル使用メモリ | 81,920 KB |
実行使用メモリ | 80,128 KB |
最終ジャッジ日時 | 2024-07-01 17:42:47 |
合計ジャッジ時間 | 3,266 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 10 |
ソースコード
""" https://yukicoder.me/problems/no/2358 全部出力なので、少ないことがわかる xを固定してみよう x(y+z)+yz = N なんか、一つしか存在しなさそうな見た目 N % gcd(x,y) = 0 N % gcd(x,z) = 0 を利用する? y = gY z = hZ gX(gY+hZ) + gYhZ = 0 x,y,z のgcdを考える? とりあえず x <= y <= z とするか… xは10^3未満 yもね ab+c(a+b) == N """ import sys import itertools N = int(input()) ans = [] for a in range(3164): for b in range(a,3164): rem = N - a*b if a+b == 0: continue if rem % (a+b) == 0: c = rem // (a+b) if b <= c: s = set() for p in itertools.permutations([a,b,c]): tup = tuple(p) s.add(tup) for tup in s: ans.append(tup) print (len(ans)) for x,y,z in ans: print (x,y,z)