結果
問題 | No.14 最小公倍数ソート |
ユーザー | ynq1242 |
提出日時 | 2014-10-28 16:44:05 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 4,520 ms / 5,000 ms |
コード長 | 1,736 bytes |
コンパイル時間 | 975 ms |
コンパイル使用メモリ | 87,268 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-12-30 14:05:00 |
合計ジャッジ時間 | 52,463 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 2 ms
5,248 KB |
testcase_01 | AC | 2 ms
5,248 KB |
testcase_02 | AC | 2 ms
5,248 KB |
testcase_03 | AC | 68 ms
5,248 KB |
testcase_04 | AC | 4,520 ms
5,248 KB |
testcase_05 | AC | 1,506 ms
5,248 KB |
testcase_06 | AC | 1,827 ms
5,248 KB |
testcase_07 | AC | 2,348 ms
5,248 KB |
testcase_08 | AC | 3,114 ms
5,248 KB |
testcase_09 | AC | 4,169 ms
5,248 KB |
testcase_10 | AC | 4,425 ms
5,248 KB |
testcase_11 | AC | 4,184 ms
5,248 KB |
testcase_12 | AC | 4,416 ms
5,248 KB |
testcase_13 | AC | 4,434 ms
5,248 KB |
testcase_14 | AC | 4,267 ms
5,248 KB |
testcase_15 | AC | 4,467 ms
5,248 KB |
testcase_16 | AC | 1,783 ms
5,248 KB |
testcase_17 | AC | 1,316 ms
5,248 KB |
testcase_18 | AC | 620 ms
5,248 KB |
testcase_19 | AC | 2,935 ms
5,248 KB |
ソースコード
#include<iostream> #include <fstream> #include <stdio.h> #include <stdlib.h> #define _USE_MATH_DEFINES #include <math.h> #include<string> #include<vector> #include<cmath> #include<stack> #include<queue> #include<list> #include<sstream> #include<algorithm> #include<map> #include<complex> #include<ctime> #include<set> using namespace std; #define li long long int #define rep(i,to) for(li i=0;i<((li)(to));i++) #define repp(i,start,to) for(li i=(li)(start);i<((li)(to));i++) #define pb push_back #define sz(v) ((li)(v).size()) #define bgn(v) ((v).begin()) #define eend(v) ((v).end()) #define allof(v) (v).begin(), (v).end() #define dodp(v,n) memset(v,(li)n,sizeof(v)) #define bit(n) (1ll<<(li)(n)) #define mp(a,b) make_pair(a,b) #define rin rep(i,n) #define EPS 1e-10 #define ETOL 1e-8 #define MOD 1000000007 #define F first #define S second #define endl "\n" #define p2(a,b) cout<<a<<"\t"<<b<<endl #define p3(a,b,c) cout<<a<<"\t"<<b<<"\t"<<c<<endl inline li gcd(li a, li b){ if(a<b)swap(a,b); if(a%b==0)return b; return gcd(b, a%b); } inline li lcm(li a, li b){ li g=gcd(a,b); return a*b/g; } li a[10010]; int main(){ ios::sync_with_stdio(false); li n; cin>>n; rin{cin>>a[i];} sort(a+1, a+n); list<li> l; repp(i,1,n)l.pb(a[i]); li prev=a[0]; rep(i,n-1){ prev=a[i]; li tmin=bit(55), tmini=bit(55); list<li>::iterator sugoi; for(list<li>::iterator it=l.begin(); it!=l.end(); ++it){ if(tmin<*it)break; li now=lcm(prev, *it); if(now<tmin || (now==tmin && *it<tmini)){ tmin=now; tmini=*it; sugoi=it; } } a[i+1]=tmini; l.erase(sugoi); } rin{cout<<a[i]<<" ";} puts(""); return 0; }