結果
| 問題 |
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;
}