結果
問題 |
No.14 最小公倍数ソート
|
ユーザー |
|
提出日時 | 2015-08-21 16:57:21 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 923 bytes |
コンパイル時間 | 1,139 ms |
コンパイル使用メモリ | 160,828 KB |
実行使用メモリ | 10,272 KB |
最終ジャッジ日時 | 2024-07-18 11:19:33 |
合計ジャッジ時間 | 7,607 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 4 TLE * 1 -- * 15 |
ソースコード
#include <bits/stdc++.h> #define rep(i, a) rep2 (i, 0, a) #define rep2(i, a, b) for (int i = (a); i < (b); i++) #define repr(i, a) repr2 (i, 0, a) #define repr2(i, a, b) for (int i = (b) - 1; i >= (a); i--) #define asn(a, b, c) fill_n(&(b), sizeof(a) / sizeof(b), c) using namespace std; typedef long long ll; const ll inf = 1e9; const ll mod = 1e9 + 7; const ll infl = 1e18; ll lcm(ll a, ll b) { return a / __gcd(a, b) * b; } ostream &operator <<(ostream &os, const vector<ll> &v) { rep (i, v.size()) { if (i) cout << " "; cout << v[i]; } return os; } int main() { int N; cin >> N; vector<ll> a(N); rep (i, N) cin >> a[i]; rep (i, N - 1) { ll mini = infl; ll minv = infl; rep2 (j, i + 1, N) { ll l = lcm(a[i], a[j]); if (l < minv) { minv = l; mini = j; } else if (l == minv && a[mini] > a[j]) { mini = j; } } swap(a[i + 1], a[mini]); } cout << a << endl; return 0; }