CF2219A Grid L
题目描述
Roger 有 $p$ 根单位长度的线段,以及 $q$ 个 L 型拼块,每个 L 型拼块由两根单位长度的线段以直角拼接而成。

他想用所有这些线段与拼块(不能剩余)拼成一个 $n \times m$ 的网格。
给定 $p$ 和 $q$,判断是否存在正整数 $n$ 和 $m$,使得用恰好 $p$ 根单位线段和 $q$ 个 L 型拼块(可以旋转)正好拼出一个 $n \times m$ 的网格。若存在,输出任意一组合法的 $n$ 和 $m$。
输入格式
每组测试数据包含多组数据。
第一行输入测试组数 $t$($1 \le t \le 100$)。
随后 $t$ 行,每行输入两个整数 $p$ 和 $q$($1 \le p, q \le 10^8$)。
输出格式
对于每组测试数据,输出一行,如果存在方案,输出一组合法的 $n$ 和 $m$(空格分隔)。如果无法拼出,输出 $-1$。
说明/提示
下图展示了样例 2、3、4 的一种构造方式。不同 L 型拼块用不同颜色表示,所有单位线段用黑色表示。

由 ChatGPT 5 翻译