結果
問題 | No.751 Frac #2 |
ユーザー |
![]() |
提出日時 | 2019-08-23 03:21:17 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 1,000 ms |
コード長 | 1,131 bytes |
コンパイル時間 | 851 ms |
コンパイル使用メモリ | 95,344 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-10-13 11:50:11 |
合計ジャッジ時間 | 1,927 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 36 |
ソースコード
#include <iostream> #include <vector> #include <string> #include <cstring> #include <math.h> #include <cmath> #include <limits.h> #include <map> #include <unordered_map> #include <set> #include <queue> #include <algorithm> #include <functional> #include <stdio.h> using namespace std; long long MOD = 1000000007; long long gcd( long long a, long long b ) { if ( b == 0 ) { return a; } return gcd( b, a%b ); } int main() { int n1,n2; cin >> n1; vector<long long> A(n1); for ( int i = 0; i < n1; i++ ) { cin >> A[i]; } cin >> n2; vector<long long> B(n2); for ( int i = 0; i < n2; i++ ) { cin >> B[i]; } for ( int i = 1; i < n1; i++ ) { B[0] *= A[i]; } for ( int i = n2-1; i > 1; i-- ) { B[i-2] *= B[i]; } long long a,b; a = A[0] * ( n2 == 1 ? 1 : B[1] ); b = B[0]; long long g = gcd( abs(a), abs(b) ); a /= g; b /= g; if ( ( a > 0 ) != ( b > 0 ) ) { cout << -abs(a) << " " << abs(b) << endl; } else { cout << abs(a) << " " << abs(b) << endl; } return 0; }