seuOJ413 - 数学问题
- 题目类型:传统
- 输入文件:标准输入流
- 输出文件:标准输出流
- 时间限制:1000 ms
- 空间限制:256 MiB
- 题目标签:冬季, 校赛, 决赛, 2022
题目描述
给你一个小数 c(0≤c≤2000) ,请你构造一个分数,可以表示这个小数,使该分数和小数之间的差值不超过 10−6 。
输入格式
第一行,一个整数 n(1≤n≤104),代表数据组数。
接下来的 n 行,每行一个小数 c 。
输出格式
对于每组数据,输出一行表示答案。
如果存在两个满足要求的数字可以表示c,按照先分子后分母的顺序输出这两个整数 a,b。
否则,输出“-1”(不含引号)。
样例
样例输入1
样例输出1
数据范围与提示
对于你输出的两个整数 a,b 有如下要求:
- 0≤a,b≤2×109。
- a,b 必须的最大公因数是 1 (即 a,b 互质, gcd(a,b)=1 )。
- ∣ba−c∣≤10−6 。
你的输出不需要和样例输出一样,只需满足以上条件即被视作正确。
如果你的答案非法,会收到如下信息:
- 输出的分母为 0 : The denominator is 0!
- 输出的 a,b 范围不合法: a or b is out of range!
- 输出的 a,b 不互质: The gcd of a and b is not 1!
- ∣ba−c∣>10−6: Your answer is worng!
约定 gcd(0,x)=gcd(x,0)=x 。