P1516 青蛙的约会(代码是错的,具体不是讨论这个,所以在学术版)
code:
#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
ll gcd (ll aa, ll bb){
if (aa % bb == 0)return bb;
return gcd (bb, aa % bb);
}
void exgcd (ll a, ll b, ll &x, ll &y){
if (b == 0){
x = 1;
y = 0;
}
ll tmp = x;
x = y;
y = tmp - a / b * y;
}
int main (){
ll n, m, xx, yy, l;
cin >> xx >> yy >> m >> n >> l;
ll A = xx - yy, B = m - n;
ll t;
if (A % gcd (l, B) != 0){
cout << "Impossible";
return 0;
}
ll zx = l / gcd (n, gcd (m, l));
ll x, y;
if (l > B){
exgcd (l, B, x, y);
t = -y;
}
else {
exgcd (B, l, x, y);
t = -x;
}
while (t < 0){
t += zx;
}
cout << t;
return 0;
}
当输入1 2 3 4 5时,结果为2
但当我把倒数第三行改为cout << t << endl << zx时,就变成了0 5
请问一下各位大佬,这是不是dev的bug特性?
(话说我在另一个ide上变成了4 5,就离谱)