結果
| 問題 |
No.751 Frac #2
|
| コンテスト | |
| ユーザー |
toshiki_full
|
| 提出日時 | 2019-01-08 01:44:06 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,238 bytes |
| コンパイル時間 | 1,860 ms |
| コンパイル使用メモリ | 161,368 KB |
| 実行使用メモリ | 5,248 KB |
| 最終ジャッジ日時 | 2024-11-24 00:31:59 |
| 合計ジャッジ時間 | 2,895 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 31 WA * 5 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
int gcd (int a, int b) {
if (a < b) {
swap(a, b);
}
if (b == 0) {
return 0;
}
while (b) {
a %= b;
swap(a, b);
}
if (a < 0) {
a *= -1;
}
return a;
}
pair<int, int> reduce (pair<int, int> a, pair<int, int> b) {
int num = a.first * b.second;
int den = a.second * b.first;
int g = gcd(num, den);
num /= g;
den /= g;
if (den < 0) {
num *= -1;
den *= -1;
}
return {num, den};
}
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
int m;
cin >> m;
vector<int> a(m);
for (int i = 0; i < m; i++) {
int tmp;
cin >> tmp;
a[i] = tmp;
}
pair<int, int> frc;
if (m ==1) {
frc = {a[0], 1};
} else {
frc = {a[0], a[1]};
}
for (int i = 2; i < m; i++) {
frc = reduce(frc, {a[i], 1});
}
int n;
cin >> n;
vector<int> b(n);
for (int i = 0; i < n; i++) {
int tmp;
cin >> tmp;
b[i] = tmp;
}
pair<int, int> grc;
if (n == 1) {
grc = {b[n - 1], 1};
} else {
grc = {b[n - 2], b[n - 1]};
}
for (int i = n - 3; i >= 0; i--) {
grc = reduce({b[i], 1}, grc);
}
pair<int, int> ans = reduce(frc, grc);
cout << ans.first << ' ' << ans.second << '\n';
return 0;
}
toshiki_full