B. Z mod X = C

You are given three positive integers aa, bb, cc (a<b<ca<b<c). You have to find three positive integers xx, yy, zz such that:

xmody=a,xmody=a,

ymodz=b,ymodz=b,

zmodx=c.zmodx=c.

Here pmodqpmodq denotes the remainder from dividing pp by qq. It is possible to show that for such constraints the answer always exists.

Input

The input consists of multiple test cases. The first line contains a single integer tt (1≤t≤100001≤t≤10000) — the number of test cases. Description of the test cases follows.

Each test case contains a single line with three integers aa, bb, cc (1≤a<b<c≤1081≤a<b<c≤108).

Output

For each test case output three positive integers xx, yy, zz (1≤x,y,z≤10181≤x,y,z≤1018) such that xmody=axmody=a, ymodz=bymodz=b, zmodx=czmodx=c.

You can output any correct answer.

Example

input

4
1 3 4
127 234 421
2 7 8
59 94 388

output

12 11 4
1063 234 1484
25 23 8
2221 94 2609

Note

In the first test case:

xmody=12mod11=1;xmody=12mod11=1;

ymodz=11mod4=3;ymodz=11mod4=3;

zmodx=4mod12=4.

题目大意:

给你3个数字a,b,c(a<b<c),找出3个数字x,y,z使得x%y==a,y%z==b,z%x==c;

分析:

因为 a < a + b + c a<a+b+ca<a+b+c,所以 a   m o d   a + b + c = a a\ mod\ a+b+c=aa mod a+b+c=a,a + b + c   m o d   a + c = b a+b+c\ mod\ a+c=ba+b+c mod a+c=b,a + c   m o d   a = c a+c\ mod\ a=ca+c mod a=c。
答案:

#include<bits/stdc++.h>
using namespace std;
int main(){
	int a,b,c,n;
	cin>>n;
	while(n){
		cin>>a>>b>>c;
		cout<<a+b+c<<" "<<b+c<<" "<<c<<endl;
		n--;
	}
}

可以证明这个命题是正确的。具体地,假设存在一个整系数多项式 P(x,y,z)P(x,y,z)P(x,y,z) ,使得对于任意的正整数 nnn,当且仅当 nnn 不是完全平方数时,存在 x,y,z∈Z x,y,z\in Z^ x,y,z∈Z,使得 P(x,y,z)=nP(x,y,z)=nP(x,y,z)=n。我们将会证明这个假设导致一个矛盾。 首先,考虑当 nnn 是完全平方数时的情形。如果 nnn 是一个完全平方数,那么设 n=k2n=k^2n=k2,其中 kkk 是一个正整数。因为 k2k^2k2 是完全平方数,根据假设,多项式 P(x,y,z)P(x,y,z)P(x,y,z) 在整点 (x,y,z)=(k,k,k)(x,y,z)=(k,k,k) (或任意一组所有坐标都是 kkk 的整点) 处取得了 nnn,因此 P(k,k,k)=k2nP(k,k,k)=k2nP(k,k,k)=k2 恒成立。 接下来,考虑 nnn 不是完全平方数的情形。根据假设,在这种情况下,存在一组整点 (x,y,z)(x,y,z)(x,y,z),使得 P(x,y,z)=nP(x,y,z)=nP(x,y,z)=n。因此,多项式 Q(a,b,c)=P(an,bn,cn)Q(a,b,c)=P(an,bn,cn)Q(a,b,c)=P(an,bn,cn) 的系数是整数,并且满足 Q(1,0,0)=nQ(1,0,0)=nQ(1,0,0)=n(这里 a=1, b=0, c=0a=1, b=0, c=0a=1,b=0,c=0)。我们认为多项式 Q(a,b,c)Q(a,b,c)Q(a,b,c) 的最高次项的系数不为 000。因为我们可以将每个系数都除以最高次项的系数,这也不改变 Q(1,0,0)=nQ(1,0,0)=nQ(1,0,0)=n。 我们将对多项式 Q(a,b,c)Q(a,b,c)Q(a,b,c) 进行归纳证明: 当 Q(a,b,c)=0Q(a,b,c)=0Q(a,b,c)=0 时,我们得到了一个矛盾,因为如果 Q(a,b,c)=0Q(a,b,c)=0Q(a,b,c)=0,那么 P(an,bn,cn)=nnP(an,bn,cn)=nnP(an,bn,cn)=n 对一切整数 nnn 都成立,特别地,当 n=1n=1n=1 时,我们从 P(a,b,c)=P(a,b,c)=P(a,b,c)=1 会得到另一个矛盾。 因此,假设 Q(a,b,c)≠0Q(a,b,c)≠0Q(a,b,c)≠0。考虑用有理数域上的多项式来模仿这个过程。我们定义多项式 R(T)=Q(T,T+1,T+2)R(T)=Q(T,T+1,T+2)R(T)=Q(T,T+1,T+2),然后证明 R(T)R(T)R(T) 在有理数域上有一些零点。 首先,假设 R(T)R(T)R(T) 是奇函数。换句话说,R(−T)=−R(T)R(-T)=-R(T)R(−T)=−R(T) 对一切 TTT 都成立。考虑有理数域上的多项式:R(T)/(T(T+1)(T+2))R(T)/(T(T+1)(T+2))R(T)/(T(T+1)(T+2))。由于在 TTT 趋近于正无穷时,这个多项式的次数增长速度最高,因此这个多项式至少有一个有理数根,在有限域 FpF_pFp 上可以找到这个根,其中 ppp 是一个足够大的质数。我们设这个根为 a/ba/ba/b,其中 aaaa 和 bbbb 是互质的整数,并且 b≠0b≠0b≠0。 接下来,因为 R(T)R(T)R(T) 是奇函数,因此我们有 R(a/b)=0R(a/b)=0R(a/b)=0。由于 aaaa 和 bbbb 是互质的,因此我们可以选择一个整数 xxx,使得 ax−1≡1(modb)ax-1≡1 \pmod bax−1≡1(modb),也就是说,x(bk−1)+1=ax(bk−1)+1=a(bk−1+1)∈Zx(bk-1)+1=ax(bk-1)+1=a(bk-1+1) \in Zx(bk−1)+1=ax(bk−1)+1=a(bk−1+1)∈Z。因此,我们有 R(x)=Q(xk,xk+k,xk+2k)=P(xk,xk+k,xk+2k)=nR(x)=Q(xk,xk+k,xk+2k)=P(xk,xk+k,xk+2k)=nR(x)=Q(xk,xk+k,xk+2k)=P(xk,xk+k,xk+2k)=n。这意味着我们找到了一组整点 (xk,xk+k,xk+2k)(xk,xk+k,xk+2k)(xk,xk+k,xk+2k),使得 P(xk,xk+k,xk+2k)=nP(xk,xk+k,xk+2k)=nP(xk,xk+k,xk+2k)=n,这与 nnn 是完全平方数的情形相矛盾。 因此,我们证明了假设的反面,不存在所需的整系数多项式 P(x,y,z)P(x,y,z)P(x,y,z)。因此,命题成立。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值