Codeforces 1352A Sum of Round Numbers Solution & Explanation

Difficulty : 800

Problem Description

A positive (strictly greater than zero) integer is called round if it is of the form d00…0. In other words, a positive integer is round if all its digits except the leftmost (most significant) are equal to zero. In particular, all numbers from 11 to 99 (inclusive) are round.

For example, the following numbers are round: 4000, 1, 9, 800, 90. The following numbers are not round: 110, 707, 222, 1001.

You are given a positive integer (1≤n≤104). Represent the number n as a sum of round numbers using the minimum number of summands (addends). In other words, you need to represent the given number n as a sum of the least number of terms, each of which is a round number.

Input

The first line contains an integer t (1≤t≤104) — the number of test cases in the input. Then t test cases follow.

Each test case is a line containing an integer n (1≤n≤104).

Output

Print t answers to the test cases. Each answer must begin with an integer k — the minimum number of summands. Next, k terms must follow, each of which is a round number, and their sum is n. The terms can be printed in any order. If there are several answers, print any of them.

Examples

Input5
5009
7
9876
10000
10
Output2
5000 9
1
7
4
800 70 6 9000
1
10000
1
10

Solution

C# Solution

Solution1

int t = int.Parse(Console.ReadLine());

for(int i=0; i<t; i++){
    int n = int.Parse(Console.ReadLine());
    List<int>tmp = new List<int>();
    int multi = 1;
    
    while(n>0){
        if(n%10>0){
            tmp.Add(n%10*multi);       
        }
        n/=10;
        multi*=10;
    }
    Console.WriteLine(tmp.Count);
    Console.WriteLine(string.Join(" ", tmp));
}

The variable multi is used to determine the digit placement for round numbers. It starts at 1 and is multiplied by 10 in each iteration, ensuring the correct placement of digits for each round number.


Conclusion

🧡If my solution helps, that is my honor!

🧡You can support me by sharing my posts, thanks you~~

✅If you got any problem about the explanation or you need other programming language solution, please feel free to let me know !!

The problem link : Problem – 1352A – Codeforces

Random Codeforces Posts

Leave a Reply

Your email address will not be published. Required fields are marked *