列表

详情


NC253632. A加B,A模B

描述

给出两个整数 nm,请你找出两个整数 ab,并且 ab 需要同时满足以下条件:


其中,\text{mod} 代表计算两个数相除后的余数,例如 10\ \text{mod}\ 3=1, 4\ \text{mod}\ 2=0

如果找不到合法的 ab,输出 -1;否则请输出你找到的 ab。如果有多个可行的答案,请输出任意一个。

输入描述

第一行包含一个整数 T(1\leq T \leq 2\cdot 10^5),表示测试用例的组数。

对于每组测试用例:

仅输入一行,包含两个整数 n,m\ (0\leq n,m\leq 10^9)

输出描述

对于每组测试用例:

仅输出一行。如果找不到合法的 ab,输出 -1;否则请输出两个整数 ab。如果有多个可行的答案,请输出任意一个。

示例1

输入:

2
6 2
1 1

输出:

2 4
-1

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++ 解法, 执行用时: 721ms, 内存消耗: 4244K, 提交时间: 2023-08-12 10:22:38

#include<iostream>
using namespace std;

int main()
{
	int T;
	cin>>T;
	while(T--)
	{
		int n,m;
		cin>>n>>m;
		if(m+m>=n)puts("-1");
		else printf("%d %d\n",m,n-m);
	}
}

Python3 解法, 执行用时: 1391ms, 内存消耗: 8392K, 提交时间: 2023-08-12 10:21:46

n=int(input())
for i in range(n):
    n,m=map(int,input().split())
    if 2*m>=n:print(-1)
    else:print(f"{m} {n-m}")

上一题