結果
問題 | No.751 Frac #2 |
ユーザー |
![]() |
提出日時 | 2018-11-10 01:51:36 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 2 ms / 1,000 ms |
コード長 | 1,237 bytes |
コンパイル時間 | 925 ms |
コンパイル使用メモリ | 84,432 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-11-21 13:12:08 |
合計ジャッジ時間 | 1,775 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 36 |
コンパイルメッセージ
main.cpp: In function ‘int main()’: main.cpp:55:8: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 55 | scanf("%d", &an); | ~~~~~^~~~~~~~~~~ main.cpp:56:37: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 56 | for (int i = 0; i < an; i++) scanf("%d", as + i); | ~~~~~^~~~~~~~~~~~~~ main.cpp:59:8: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 59 | scanf("%d", &bn); | ~~~~~^~~~~~~~~~~ main.cpp:60:37: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 60 | for (int i = 0; i < bn; i++) scanf("%d", bs + i); | ~~~~~^~~~~~~~~~~~~~
ソースコード
/* -*- coding: utf-8 -*- * * 751.cc: No.751 Frac #2 - yukicoder */ #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<iostream> #include<string> #include<vector> #include<map> #include<set> #include<stack> #include<list> #include<queue> #include<deque> #include<algorithm> #include<numeric> #include<utility> #include<complex> #include<functional> using namespace std; /* constant */ const int MAX_N = 10; /* typedef */ typedef long long ll; /* global variables */ int as[MAX_N], bs[MAX_N]; /* subroutines */ ll __gcd(ll m, ll n) { if (m < n) swap(m, n); while (n > 0) { ll r = m % n; m = n; n = r; } return m; } /* main */ int main() { int an; scanf("%d", &an); for (int i = 0; i < an; i++) scanf("%d", as + i); int bn; scanf("%d", &bn); for (int i = 0; i < bn; i++) scanf("%d", bs + i); ll anum = as[0]; ll aden = 1; for (int i = 1; i < an; i++) aden *= as[i]; ll bnum = 1, bden = 1; for (int i = bn - 1; i >= 0; i--) swap(bnum, bden), bnum *= bs[i]; ll num = anum * bden; ll den = aden * bnum; if (den < 0) num *= -1, den *= -1; ll g = __gcd(abs(num), den); num /= g, den /= g; printf("%lld %lld\n", num, den); return 0; }