結果

問題 No.14 最小公倍数ソート
ユーザー wightou
提出日時 2025-05-09 23:16:48
言語 C++23
(gcc 13.3.0 + boost 1.87.0)
結果
TLE  
実行時間 -
コード長 1,046 bytes
コンパイル時間 3,426 ms
コンパイル使用メモリ 284,688 KB
実行使用メモリ 7,844 KB
最終ジャッジ日時 2025-05-09 23:17:57
合計ジャッジ時間 67,380 ms
ジャッジサーバーID
(参考情報)
judge4 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 12 TLE * 8
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
using namespace std;

int my_gcd(int a, int b) {
  if(b==0) return a;
  return my_gcd(b, a%b);
}

int my_lcm(int a, int b) {
  return a/my_gcd(a,b)*b;
}

/////////////////// メイン ///////////////////

int main () {
  
  //////////////////// 入力 ////////////////////

  int n;
  cin >> n;

  vector<pair<int,int>> a(n);
  for (int i=0; i<n; i++) {
    cin >> a.at(i).second;
  }

  reverse(a.begin(),a.end());

  //////////////// 出力変数定義 ////////////////

  vector<int> result(0);

  //////////////////// 処理 ////////////////////

  while (a.size()>0) {
    result.emplace_back(a.back().second);
    a.pop_back();
    for (auto& p : a) {
      p.first = my_lcm(p.second,result.back());
    }
    sort(a.begin(),a.end(),greater<>());
  }

  //////////////////// 出力 ////////////////////

  for (size_t i=0; i<result.size(); i++) {
    cout << result.at(i);
    if (i!=result.size()-1) {
      cout << " ";
    }
  }
  cout << endl;

  //////////////////// 終了 ////////////////////

  return 0;

}
0