結果
問題 | No.2358 xy+yz+zx=N |
ユーザー |
|
提出日時 | 2023-06-23 21:56:33 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 116 ms / 2,000 ms |
コード長 | 1,877 bytes |
コンパイル時間 | 1,816 ms |
コンパイル使用メモリ | 177,608 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-07-01 17:30:55 |
合計ジャッジ時間 | 3,083 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 10 |
ソースコード
#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]));}}