在一个数轴上,有两个点,它们每次必须移动到相邻整点,问能否同时重合。 如果可以,请输出一个非负整数 t,表示一共需要 t 个单位时间: 接下来输出两行,分别表示它们的移动情况。每行 t 个整数, 1 表示向右,−1表示向左。 如果不行,则输出 -1。但 t 不能大于abs(n-m)/2 ,不然小 Z 就要扣掉你全部的分数。
因为他们一共出去了 T 次,所以要询问 T次。 代码求调```cpp #include<bits/stdc++.h> using namespace std; int T; int main() { cin>>T; while(T--) { long long n, m; cin>>n>>m; long long a=abs(n - m); long long t=a/2; if(a%2!=0) { cout<<"-1"<<endl; continue; } cout<<t<<endl; if(n>m) { for(long long i=1;i<t;i++) { cout<<"-1"<<" "; } cout<<"-1"<<endl; for(long long i=1;i<t;i++) { cout<<"1"<<" "; } cout<<"1"<<endl; } else { for(long long i=1;i<t;i++) { cout<<"1"<<" "; } cout<<"1"<<endl; for(long long i=1;i<t;i++) { cout<<"-1"<<" "; } cout<<"-1"<<endl; } } return 0; }