結果
問題 | No.229 線分上を往復する3つの動点の一致 |
ユーザー |
|
提出日時 | 2015-06-19 23:46:01 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 794 bytes |
コンパイル時間 | 515 ms |
コンパイル使用メモリ | 57,764 KB |
実行使用メモリ | 6,948 KB |
最終ジャッジ日時 | 2024-07-07 04:27:22 |
合計ジャッジ時間 | 1,505 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 19 WA * 24 |
ソースコード
#include <iostream> #include <algorithm> using namespace std; typedef long long ll; ll GCD(int a, int b){ if(b == 0) return a; return GCD(b, a % b); } ll calcGCD(int a, int b){ if(a < b) swap(a, b); return GCD(a, b); } ll calcLCM2(ll a, ll b){ if(a < b) swap(a, b); return a / GCD(a, b) * b; } ll calcLCM3(ll a, ll b, ll c){ return calcLCM2(calcLCM2(a, b), c); } int main(){ int t1, t2, t3; ll v1, v2, v3; cin >> t1 >> t2 >> t3; ll numer = calcLCM3(t1, t2, t3); v1 = numer / t1 + numer / t2; v2 = numer / t2 + numer / t3; v3 = numer / t3 + numer / t1; ll denom = calcGCD(v1, v2); denom = max(denom, calcGCD(v2, v3)); denom = max(denom, calcGCD(v3, v1)); ll tmp = calcGCD(numer, denom); cout << numer / tmp << "/" << denom / tmp << endl; }