結果
問題 | No.2358 xy+yz+zx=N |
ユーザー | porkleoi |
提出日時 | 2023-06-23 21:56:33 |
言語 | C++14 (gcc 12.3.0 + boost 1.83.0) |
結果 |
AC
|
実行時間 | 119 ms / 2,000 ms |
コード長 | 1,877 bytes |
コンパイル時間 | 1,754 ms |
コンパイル使用メモリ | 177,316 KB |
実行使用メモリ | 4,380 KB |
最終ジャッジ日時 | 2023-09-14 10:06:58 |
合計ジャッジ時間 | 3,315 ms |
ジャッジサーバーID (参考情報) |
judge13 / judge14 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 2 ms
4,376 KB |
testcase_01 | AC | 1 ms
4,376 KB |
testcase_02 | AC | 2 ms
4,376 KB |
testcase_03 | AC | 1 ms
4,376 KB |
testcase_04 | AC | 1 ms
4,376 KB |
testcase_05 | AC | 1 ms
4,376 KB |
testcase_06 | AC | 2 ms
4,380 KB |
testcase_07 | AC | 4 ms
4,380 KB |
testcase_08 | AC | 112 ms
4,376 KB |
testcase_09 | AC | 119 ms
4,376 KB |
testcase_10 | AC | 81 ms
4,380 KB |
testcase_11 | AC | 87 ms
4,376 KB |
testcase_12 | AC | 57 ms
4,376 KB |
ソースコード
#include <bits/stdc++.h> using namespace std; #define rep(i, n) for (ll i = 0; i < (ll)(n); i++) #define rep2(i, s, n) for (ll i = (s); i <= (ll)(n); i++) typedef long long ll; typedef vector<int> vi; typedef vector<vector<int>> vvi; typedef vector<vector<vector<int>>> vvvi; typedef vector<string> vs; typedef vector<vector<string>> vvs; typedef vector<vector<vector<string>>> vvvs; typedef vector<char> vc; typedef vector<vector<char>> vvc; typedef vector<vector<vector<char>>> vvvc; typedef vector<ll> vll; typedef vector<vector<ll>> vvll; typedef vector<vector<vector<ll>>> vvvll; typedef vector<double> vd; typedef vector<vector<double>> vvd; typedef vector<vector<vector<double>>> vvvd; #define yes(ans) if(ans)cout << "yes"<< endl; else cout << "no" << endl #define Yes(ans) if(ans)cout << "Yes"<< endl; else cout << "No" << endl #define YES(ans) if(ans)cout << "YES"<< endl ;else cout << "NO" << endl #define all1(x) x.begin(),x.end() #define all2(x) x.rbegin(), x.rend() #define so(x) sort(all1(x)) #define re(x) reverse(all1(x)) #define rso(x) sort(all2(x)) #define vco(x, a) count(all1(x), a) #define per(x) next_permutation(all1(x)) int main(){ ll n; cin >> n; vvll ans(0, vll(3)); ll sum = 0; rep(i, sqrt(n)) rep2(j, i+1, sqrt(n)){ if((n-i*j)%(i+j)==0){ if(j<(n-i*j)/(i+j)){ ans.push_back({i, j, (n-i*j)/(i+j)}); sum += 6; } } } rep2(i, 1, sqrt(n)){ if(n%i==0){ ll m = n/i; if(i%2==m%2){ ans.push_back({i, i, (m-i)/2}); if(i!=(m-i)/2) sum += 3; else sum += 1; } } } cout << sum << endl; rep(i, ans.size()){ so(ans[i]); do{ cout << ans[i][0] << ' ' << ans[i][1] << ' ' << ans[i][2] << endl; }while(per(ans[i])); } }