Codeforces Round #277.5 (Div. 2)(二)

2014-11-24 13:25:55 · 作者: · 浏览: 165
test256 megabytesinputstandard inputoutputstandard output

You have a positive integer m and a non-negative integer s. Your task is to find the smallest and the largest of the numbers that have length m and sum of digits s. The required numbers should be non-negative integers written in the decimal base without leading zeroes.

Input

The single line of the input contains a pair of integers m, s (1 ≤ m ≤ 100, 0 ≤ s ≤ 900) ― the length and the sum of the digits of the required numbers.

Output

In the output print the pair of the required non-negative integer numbers ― first the minimum possible number, then ― the maximum possible number. If no numbers satisfying conditions required exist, print the pair of numbers "-1 -1" (without the quotes).

Sample test(s)input
2 15
output
69 96
input
3 0
output
-1 -1
#include 
                
                 
#include 
                 
                   #include 
                  
                    using namespace std; bool can(int m, int s) { if(s >= 0 && 9*m >= s) return true; else return false; } int main() { int m,s; cin>>m>>s; if(!can(m,s)) { cout<<"-1"<<" "<<"-1"<
                   
                    = 10) { cout<<"-1"<<" "<<"-1"<
                    
                      0 || (j == 0 && i > 1) ) && can(m - i, sum - j)) { minn += char('0' + j); sum -= j; break; } } sum = s; for(int i = 1; i <= m; i++) for(int j = 9; j >= 0; j--) { if(can(m - i, sum - j)) { maxn += char('0' + j); sum -= j; break; } } cout<