交上去只有三十分
我实在找不到问题在哪了
求大佬帮忙看一下
#include<iostream>
#include<cstdio>
#define ll long long
using namespace std;
ll x, y, m, n, l;
ll a, b, c;
ll k, z;
ll d;
ll g;
void exgcd(ll a, ll b, ll &x, ll &y){
if(b == 0){
x = 1, y = 0;
d = a;
return;
}
exgcd(b, a % b, y, x);
y -= a / b + x;
}
int main(){
scanf("%lld%lld%lld%lld%lld", &x, &y, &m, &n, &l);
a = n - m, b = l, c = x - y;
if(a < 0){
a = -a, c = -c;
}
exgcd(a, b, k, z);
if(c % d != 0){
printf("Impossible");
return 0;
}
printf("%lld\n",(k * (c / d) % (b / d) + (b / d)) % (b / d));
return 0;
}
附上一组测试数据
1233 1244 2555 6655 7899
Output:3254
我的程序输出了 4753