You are given three integers a, b and c.
Find two positive integers x and y (x>0, y>0) such that:
the decimal representation of x without leading zeroes consists of a digits;
the decimal representation of y without leading zeroes consists of b digits;
the decimal representation of gcd(x,y) without leading zeroes consists of c digits.
gcd(x,y) denotes the greatest common divisor (GCD) of integers x and y.
Output x and y. If there are multiple answers, output any of them.
Input
The first line contains a single integer t (1≤t≤285) — the number of testcases.
Each of the next t lines contains three integers a, b and c (1≤a,b≤9, 1≤c≤min(a,b)) — the required lengths of the numbers.
It can be shown that the answer exists for all testcases under the given constraints.
Additional constraint on the input: all testcases are different.
Output
For each testcase print two positive integers — x and y (x>0, y>0) such that
the decimal representation of x without leading zeroes consists of a digits;
the decimal representation of y without leading zeroes consists of b digits;
the decimal representation of gcd(x,y) without leading zeroes consists of c digits.
Example
input
4
2 3 1
2 2 2
6 6 2
1 1 1
output
11 492
13 26
140133 160776
1 1
题意
给你 a a a, b b b, c c c 三个数,找 x x x, y y y 其中, x x x 是 a a a 位数, y y y 是 b b b 位数, g c d ( a , b ) gcd(a,b) gcd(a,b) 是 c c c 位数。
思路
位数要想到 2 2 2, 5 5 5, 10 10 10 是几位就乘几个 10 10 10,设 z = g c d ( a , b ) z = gcd(a,b) z=gcd(a,b) , z z z 是 c c c 位数,那么就让 z z z 是 1 0 c − 1 10^{c-1} 10c−1, x x x 是 1 0 a − 1 10^{a-1} 10a−1, y y y 是 1 0 b − 1 10^{b-1} 10b−1,但是 z z z 是 x x x , y y y 的倍数, x x x 和 y y y 在 c − 1 c-1 c−1 位前是不能相等的 ( z = 10 , g c d ( 100 , 1000 ) = 100 z = 10,gcd(100,1000) = 100 z=10,gcd(100,1000)=100),所以 x + z x + z x+z 就可以保证 x x x 是 z z z 的倍数, 同时和 y y y 在 c − 1 c-1 c−1 位前是不相等的。
#include<bits/stdc++.h>
using namespace std;
typedef pair<int, int> PII;
typedef long long ll;
int main()
{
int t; cin >> t;
while (t--)
{
int a, b, c; cin >> a >> b >> c;
cout << (ll)2 * pow(10, a - 1) + (ll)2 * pow(10, c - 1) << ' ' << (ll)pow(10, b - 1) << endl;
}
return 0;
}