結果
問題 | No.442 和と積 |
ユーザー | snrnsidy |
提出日時 | 2021-05-25 04:55:31 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 1,000 ms |
コード長 | 1,017 bytes |
コンパイル時間 | 1,800 ms |
コンパイル使用メモリ | 193,728 KB |
最終ジャッジ日時 | 2025-01-21 18:07:18 |
ジャッジサーバーID (参考情報) |
judge4 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 18 |
ソースコード
#include <bits/stdc++.h> using namespace std; std::ostream& operator<<(std::ostream& dest, __int128_t value) { std::ostream::sentry s(dest); if (s) { __uint128_t tmp = value < 0 ? -value : value; char buffer[128]; char* d = std::end(buffer); do { --d; *d = "0123456789"[tmp % 10]; tmp /= 10; } while (tmp != 0); if (value < 0) { --d; *d = '-'; } int len = std::end(buffer) - d; if (dest.rdbuf()->sputn(d, len) != len) { dest.setstate(std::ios_base::badbit); } } return dest; } __int128 gcd(__int128 a, __int128 b) { if (b == 0) { return a; } return gcd(b, a % b); } int main(void) { cin.tie(0); ios::sync_with_stdio(false); long long int A, B; cin >> A >> B; __int128 a = A; __int128 b = B; __int128 X = A + B; __int128 Y = a * b; cout << gcd(X, Y) << '\n'; return 0; }