【就离谱】多输出一个变量,前面输出的就变了
  • 板块学术版
  • 楼主Gunpowder_OI
  • 当前回复5
  • 已保存回复5
  • 发布时间2022/6/27 20:59
  • 上次更新2023/10/27 22:27:05
查看原帖
【就离谱】多输出一个变量,前面输出的就变了
316855
Gunpowder_OI楼主2022/6/27 20:59

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,就离谱)

2022/6/27 20:59
加载中...