結果
問題 | No.186 中華風 (Easy) |
ユーザー |
|
提出日時 | 2015-08-12 21:50:37 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 20 ms / 2,000 ms |
コード長 | 1,059 bytes |
コンパイル時間 | 1,112 ms |
コンパイル使用メモリ | 157,548 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-07-19 18:26:58 |
合計ジャッジ時間 | 1,944 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 23 |
ソースコード
#include <bits/stdc++.h> #define rep(i, a) for (int i = 0; i < (a); i++) #define rep2(i, a, b) for (int i = (a); i < (b); i++) #define repr(i, a) for (int i = (a) - 1; i >= 0; i--) #define repr2(i, a, b) for (int i = (b) - 1; i >= (a); i--) using namespace std; typedef long long ll; const ll inf = 1e9; const ll mod = 1e9 + 9; ll x[3], y[3]; ll lcm(ll a, ll b) { return a / __gcd(a, b) * b; } void solve(ll x1, ll y1, ll x2, ll y2, ll &resX, ll &resY) { ll l = lcm(y1, y2); for (ll i = 0; x1 + y1 * i < l; i++) { ll z = x1 + y1 * i; if (z % y2 == x2) { resX = z; resY = l; return; } } resX = 0; resY = -1; } int main() { rep (i, 3) cin >> x[i] >> y[i]; solve(x[0], y[0], x[1], y[1], x[1], y[1]); if (y[1] == -1) { cout << -1 << endl; return 0; } solve(x[1], y[1], x[2], y[2], x[2], y[2]); if (y[2] == -1) { cout << -1 << endl; return 0; } if (x[2] == 0) x[2] += y[2]; cout << x[2] << endl; }