Codeforces Round #277.5 (Div. 2)(C题)_html/css_WEB-ITnose

php中文网
发布: 2016-06-24 11:53:40
原创
1241人浏览过

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 <iostream>#include <algorithm>#include <cstdio>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"<<endl;        return 0;    }    if(m == 1)    {        if(s >= 10)        {            cout<<"-1"<<" "<<"-1"<<endl;        }        else cout<<s<<" "<<s<<endl;    }    else {        if(s == 0) cout<<"-1"<<" "<<"-1"<<endl;        else {            string minn, maxn;            int sum = s;            for(int i = 1; i <= m; i++)                for(int j = 0; j < 10; j++)            {                if((j > 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<<minn<<" "<<maxn<<endl;        }    }    return 0;}
登录后复制

HTML速学教程(入门课程)
HTML速学教程(入门课程)

HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号