求助, 为什么开O2全RE,不开就AC了
查看原帖
求助, 为什么开O2全RE,不开就AC了
1037516
DreamTsinghua楼主2023/10/4 10:45
#include <bits/stdc++.h>
#define int long long

using namespace std ;
int a, b ;

int gcd(int a, int b) {
	if (b == 0 )
		return a ;
	gcd(b, a % b) ;
}

bool merge(int a1, int b1, int a2, int b2, int &a, int &b) {
	if (a1 < a2)
		swap(a1, a2), swap(b1, b2) ;
	a = a1 / gcd(a1, a2) * a2 ;
	b = b1 ;
	while (b <= a && b % a2 != b2)
		b += a1 ;
	if (b % a2 == b2 && b % a1 == b1)
		return true;
	return false ;
}
int n ;

signed main() {
	cin >> n ;
	int a1 = 1, b1 = 0 ;

	for (int i = 1 ; i <= n ; i ++) {
		int a2, b2 ;
		cin >> a2 >> b2 ;
		b2 %= a2 ;
		if (merge(a1, b1, a2, b2, a, b))

			a1 = a, b1 = b ;
	}

	cout << b1 ;
	return 0 ;
}
2023/10/4 10:45
加载中...