結果
| 問題 |
No.186 中華風 (Easy)
|
| コンテスト | |
| ユーザー |
bal4u
|
| 提出日時 | 2019-05-02 18:51:44 |
| 言語 | C (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 880 bytes |
| コンパイル時間 | 618 ms |
| コンパイル使用メモリ | 30,592 KB |
| 実行使用メモリ | 6,824 KB |
| 最終ジャッジ日時 | 2024-12-31 13:36:38 |
| 合計ジャッジ時間 | 1,379 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 16 WA * 7 |
ソースコード
// yukicoder: No. 186 中華風 (Easy)
// 2019.5.2 bal4u
#include <stdio.h>
long long extended_gcd(long long a, long long b, long long *x, long long *y)
{
long long d;
if (b == 0) { *x = 1; *y = 0; return a; }
d = extended_gcd(b, a % b, y, x);
*y -= a / b * (*x);
return d;
}
int chinese(long long *a1, long long *a2, int *a, int *m, int sz)
{
int i;
long long p, q, d, t, r, M;
r = 0, M = 1;
for (i = 0; i < sz; i++) {
d = extended_gcd(M, m[i], &p, &q);
if ((a[i] - r) % d) return 0;
t = (a[i] - r)/d * p % (m[i]/d);
r += M * t;
M *= m[i]/d;
}
*a1 = r % M, *a2 = M;
return 1;
}
int x[3], y[3];
int main()
{
int i, f;
long long a1, a2;
f = 0; for (i = 0; i < 3; i++) {
scanf("%d%d", x+i, y+i);
if (x[i]) f = 1;
}
if (chinese(&a1, &a2, x, y, 3)) printf("%lld\n", f? a1: a2);
else puts("-1");
return 0;
}
bal4u