如果x>y,则一定有解,解为1,y−x
否则一定无解
C++
#include <bits/stdc++.h>
using namespace std;
typedef pair<int,int>PII;
#define x first
#define y second
typedef long long ll;
const int N=1E5+10;
int n,a,b;
int main()
{
cin>>n;
while(n--)
{
cin>>a>>b;
if(a>=b)printf("-1 -1\n");
else
{
int d=b-a;
printf("%d %d\n",1,d);
}
}
return 0;
}
Java
import java.util.*;
class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int T=sc.nextInt();
while(T-->0){
int x=sc.nextInt();
int y=sc.nextInt();
if(x>=y){
System.out.println("-1 -1");
}
else{
System.out.println(1+" "+(y-x));
}
}
}
}
Python
num = int(input())
for i in range(num):
x ,y = [int(i) for i in input().split(' ')]
if x < y:
print(y - x,1)
else:
print(-1,-1)
小红拿到了两个正整数 x 和 y ,他现在问你是否能构造两个正整数 a 和 b 满足以下性质:
请你构造任意合法解。共有 t 组询问。
第一行输入一个正整数 t ,代表询问的次数。
接下来的 t 行,每行输入两个正整数 x 和 y ,代表一次询问。
1≤t,x,y≤100
对于每次询问,如果无解,则输出两个 −1 。
否则输出两个正整数,代表一个合法解。
有多解时输出任意即可。
输入
2
1 5
2 2
输出
2 2
-1 -1
样例解释
第一组询问,对 1 进行两次加 2 操作,即可使其变成 5 。
第二组询问,显然没有任何合法操作。
In following contests: