编号 题目 状态 分数 总时间 内存 代码 / 答案文件 提交者 提交时间
#21343 #1070. 脸盲的zzy和jwp Accepted 100 24 ms 356 K C++ 17 / 1.0 K 自动化82-郭筠陶 2020-02-05 15:51:56
显示原始代码
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

ll x1, v1, x2, v2, len;
ll exgcd(ll a, ll b, ll& x, ll& y);

int main() {
    cin >> x1 >> v1 >> x2 >> v2 >> len;
    if (v1 == v2) {
        if (x1 != x2)
            cout << -1;
        else
            cout << 0;
        return 0;
    }
    ll v = (v1 - v2 + len) % len, x = (x2 - x1 + len) % len, t0, k;
    int gcd = exgcd(v, len, t0, k);
    if (x % gcd != 0) {
        cout << -1;
    } else {
        ll nx = x / gcd, t = t0 * nx, nlen = len / gcd;
        t = (t % nlen + nlen) % nlen;
        /*cout << v << "\t" << x << "\t" << t << "\t" << k << "\t" << gcd << "\t" << nlen << "\t" << t0 << t
         * << endl;*/
        cout << t;
    }
}

ll exgcd(ll a, ll b, ll& x, ll& y) {  //扩展欧几里得算法
    if (b == 0) {
        x = 1;
        y = 0;
        return a;  //到达递归边界开始向上一层返回
    }
    int r = exgcd(b, a % b, x, y);
    int temp = y;  //把x y变成上一层的
    y = x - (a / b) * y;
    x = temp;
    return r;  //得到a b的最大公因数
}
子任务 #1
Accepted
得分:100
测试点 #1
Accepted
得分:100
用时:2 ms
内存:356 KiB

输入文件(0.in

6 4 4 2 10

答案文件(0.out

4

用户输出

4

系统信息

Exited with return code 0
测试点 #2
Accepted
得分:100
用时:2 ms
内存:268 KiB

输入文件(1.in

28506299 54967377 76257780 18179041 344647755

答案文件(1.out

175111586

用户输出

175111586

系统信息

Exited with return code 0
测试点 #3
Accepted
得分:100
用时:2 ms
内存:236 KiB

输入文件(2.in

89837683 28318386 28926365 27593126 490847831

答案文件(2.out

91595156

用户输出

91595156

系统信息

Exited with return code 0
测试点 #4
Accepted
得分:100
用时:2 ms
内存:288 KiB

输入文件(3.in

7769413 89547256 15137047 64297401 26232361

答案文件(3.out

6586798

用户输出

6586798

系统信息

Exited with return code 0
测试点 #5
Accepted
得分:100
用时:2 ms
内存:308 KiB

输入文件(4.in

62694776 29553013 33500894 25403169 90165477

答案文件(4.out

83740797

用户输出

83740797

系统信息

Exited with return code 0
测试点 #6
Accepted
得分:100
用时:2 ms
内存:312 KiB

输入文件(5.in

52342699 90187177 68103430 71396189 179313475

答案文件(5.out

116043662

用户输出

116043662

系统信息

Exited with return code 0
测试点 #7
Accepted
得分:100
用时:2 ms
内存:352 KiB

输入文件(6.in

1430337 48626001 24961783 8942151 106816817

答案文件(6.out

42763932

用户输出

42763932

系统信息

Exited with return code 0
测试点 #8
Accepted
得分:100
用时:2 ms
内存:284 KiB

输入文件(7.in

17173129 74396504 97129935 68505416 507792673

答案文件(7.out

445951169

用户输出

445951169

系统信息

Exited with return code 0
测试点 #9
Accepted
得分:100
用时:2 ms
内存:352 KiB

输入文件(8.in

6424832 32551261 9136121 98826762 280435157

答案文件(8.out

169591840

用户输出

169591840

系统信息

Exited with return code 0
测试点 #10
Accepted
得分:100
用时:2 ms
内存:284 KiB

输入文件(9.in

22693031 25103341 67212445 51559021 227945004

答案文件(9.out

-1

用户输出

-1

系统信息

Exited with return code 0
测试点 #11
Accepted
得分:100
用时:2 ms
内存:352 KiB

输入文件(10.in

37845999 82853937 302399 56837019 687279423

答案文件(10.out

-1

用户输出

-1

系统信息

Exited with return code 0
测试点 #12
Accepted
得分:100
用时:2 ms
内存:300 KiB

输入文件(11.in

3 2 5 2 10

答案文件(11.out

-1

用户输出

-1

系统信息

Exited with return code 0