zoukankan      html  css  js  c++  java
  • C. Given Length and Sum of Digits... (贪心)

    https://codeforces.com/problemset/problem/489/C

    C. Given Length and Sum of Digits...

    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).

    Examples

    input

    2 15
    

    output

    69 96
    

    input

    3 0
    

    output

    -1 -1
    

    题意:

    给定一个数m 和 一个长度s,计算最大和最小在s长度下的十进制各位数和为m的值

    注意如果无法生成,即输出两个-1

    题解:

    有个小坑,在输出最大值时得注意下k 是否为 0

    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
        int m, s, i, k;
        cin >> m >> s;
        if (s < 1 && m>1 || s > m * 9)
            cout << -1 << " " << -1 << endl;
        else {
            for (i = m - 1, k = s; i >= 0; i--) {
                int j = max(0, k - 9 * i);
                if (j == 0 && i == m - 1 && k) j = 1;
                cout << j;
                k -= j;
            }
            cout << ' ';
            for (i = m - 1, k = s; i >= 0; i--) {
                int j = min(9, k);
                cout << j;
                k -= j;
            }
        }
    }
    
  • 相关阅读:
    python基础练习5-9
    python安装
    python虚拟环境
    python基础语法--逻辑实现
    python基础语法
    IDE(vscode)
    pycharm使用
    复习
    环境搭建+python基础
    ASP.NET 5行代码搞二维码
  • 原文地址:https://www.cnblogs.com/RioTian/p/13332638.html
Copyright © 2011-2022 走看看