結果
| 問題 |
No.186 中華風 (Easy)
|
| コンテスト | |
| ユーザー |
kurenai3110
|
| 提出日時 | 2016-12-27 19:12:40 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 878 bytes |
| コンパイル時間 | 515 ms |
| コンパイル使用メモリ | 59,912 KB |
| 実行使用メモリ | 6,824 KB |
| 最終ジャッジ日時 | 2024-12-15 04:21:36 |
| 合計ジャッジ時間 | 1,188 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 6 WA * 17 |
ソースコード
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
using namespace std;
typedef long long ll;
ll gcd(ll a, ll b) {
return b != 0 ? gcd(b, a % b) : a;
}
ll lcm(ll a, ll b) {
return a * b / gcd(a, b);
}
//ax + by = gcd(a,b);
ll extgcd(ll a,ll b,ll &x,ll &y) {
ll g = a; x = 1; y = 0;
if (b != 0)g = extgcd(b, a%b, y, x), y -= (a / b)*x;
return g;
}
int main()
{
bool flag = true;
ll x1, x2, x3, y1, y2, y3; cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;
ll s1 = x2 - x1;
ll a, b, g1; g1 = extgcd(y1,y2,a,b);
if (s1%g1)flag = false;
a *= s1/g1; b *= -s1/g1;
a += y2, b += y1;
ll x4 = y1*a + x1;
ll y4 = lcm(y1,y2);
ll s2 = x3 - x4;
ll c, d, g2; g2 = extgcd(y4, y3, c, d);
if (s2%g2)flag = false;
c *= s2/g2; d *= -s2/g2;
c += y3, d += y4;
ll x5 = y3*d + x3;
if (flag) {
cout << x5 << endl;
}
else cout << -1 << endl;
return 0;
}
kurenai3110