题目: http://codeforces.com/contest/489/problem/C
C. Given Length and Sum of Digits... time limit per test 1 second memory limit per test 256 megabytes input standard input output standard outputYou 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.
InputThe 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.
OutputIn 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<stdio.h>
#include<iostream>
#include<math.h>
#include<stdlib.h>
#include<ctype.h>
#include<algorithm>
#include<vector>
#include<string.h>
#include<queue>
#include<stack>
#include<set>
#include<map>
#include<sstream>
#include<time.h>
#include<malloc.h>
using namespace std;
int n,m;
int a[110];
int main ()
{
while (scanf("%d %d",&n,&m)!=EOF)
{
if ( m == 0 )
{
if ( n == 1)
printf("0 0\n");
else
printf("-1 -1\n");
}
else if ( n*9 < m)
printf("-1 -1\n");
else
{
{
memset(a,0,sizeof(a));
a[n-1] = 1;
int ans = m-1;
for(int i=0 ;ans && i<n;i++)
{
while (ans != 0 && a[i]<9)
{
ans--;
a[i]++;
}
}
for(int i=n-1;i>=0;i--)
printf("%d",a[i]);
printf(" ");
}
{
memset(a,0,sizeof(a));
a[0]= 1 ;
int ans = m-1;
for(int i=0;ans && i<n;i++)
{
while (ans !=0 && a[i]<9)
{
ans --;
a[i]++;
}
}
for(int i=0 ;i<n;i++)
printf("%d",a[i]);
printf("\n");
}
}
}
return 0;
}
标签:277.5,int,printf,Codeforces,numbers,output,input,Div,include From: https://blog.51cto.com/u_15990681/6098461