Codeforces Round #277.5 (Div. 2) (question C)
C. Given Length and Sum of Digits... time limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard output
You have a positive integerMAnd a non-negative integerS. Your task is to find the smallest and the largest of the numbers that have lengthMAnd sum of digitsS. The required numbers shocould be non-negative integers written in the decimal base without leading zeroes.
Input
The single line of the input contains a pair of integersM,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<