D题为啥只能过75%

void solve() {
	// b1 * b2 = c
	// a1 * a2 = a
	// a1 * b2 + a2 * b1 = b
	int a, b, c;
	cin >> a >> b >> c;
	vector<pii> v1, v2;
	for(int i = 1 ; i <= abs(a) ; i ++)
		if(a % i == 0) {
			v1.push_back({i, a / i});
            v1.push_back({- i, - a / i});
		}
    if(a == 0) v1.push_back({0, 0});
	for(int i = 1 ; i <= abs(c) ; i ++)
		if(c % i == 0) {
			v2.push_back({i, c / i});
            v2.push_back({- i, - c / i});
		}
	if(c == 0) v2.push_back({0, 0});
	for(auto [a1, a2] : v1) {
		for(auto [b1, b2] : v2) {
			if(a1 * b2 + a2 * b1 == b) {
				cout << a1 << " " << b1 << " " << a2 << " " << b2 << endl;
				return;
			}
		}
	}
	cout << "NO" << endl;
}

全部评论

相关推荐

04-28 11:34
西北大学 运营
牛客4396号:不好意思,这个照片猛一看像丁真
点赞 评论 收藏
分享
迷茫的大四🐶:自信一点,我认为你可以拿到50k,低于50k完全配不上你的能力,兄弟,不要被他们骗了,你可以的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务