Codeforces Round #277.5 (Div. 2)(C题)

2014-11-24 13:26:02 · 作者: · 浏览: 29
C. Given Length and Sum of Digits... time limit per test 1 second memory limit per test 256 megabytes input standard input output standard 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<