首页 > 其他分享 >CF1352A - Sum of Round Numbers

CF1352A - Sum of Round Numbers

时间:2022-09-18 00:03:09浏览次数:118  
标签:10 测试点 Sum number round CF1352A 整型 integer Round

CF1352A - Sum of Round Numbers

A. Sum of Round Numbers

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 \(1\) to \(9\) (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 \(n\) (\(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≤10^4\)) — 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≤10^4\)).

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.

Example

Input

5
5009
7
9876
10000
10

Output

2
5000 9
1
7 
4
800 70 6 9000 
1
10000 
1
10 

题面翻译

我们定义一个 round 的正整型,它长成这样:d00...0。换句话说,如果一个正整型是 round 的,那它除了最高位以外所有的数位都是 \(0\)。我们特别规定从 \(1\) 到 \(9\) (包含 \(9\))都满足 round。

举个例子,这些数是 round 的:\(4000\), \(1\), \(9\), \(800\), \(90\),而这些不 round: \(110\), \(707\), \(222\), \(1001\)。

给你一个正整数 \(n\) (\(1≤n≤104\)),把它用最少数量的 round 数之和表示出来。

输入

第一行是一个整型 \(t\) (\(1≤t≤10^4\)),代表测试点个数。接下来有 \(t\) 个测试点。

每个测试点包含一个整型 \(n\) (\(1≤n≤10^4\)).

输出

对每个测试点输出一个答案,每个答案必须以一个整型 \(k\) 开头,它代表加数的数量。然后输出一行 \(k\) 个加数,用空格分开。你可以以任意顺序输出你的加数。如果有很多种答案,任意输出一个。

样例

输入

5
5009
7
9876
10000
10

输出

2
5000 9
1
7 
4
800 70 6 9000 
1
10000 
1
10 

题解

从样例不难看出,可以把 \(n\) 的每一位拆成 round 数然后直接加起来。

个人 AC 代码

#include <bits/stdc++.h>
using namespace std;

int t, n;

int main()
{
    ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    cin >> t;
    while(t--)
    {
        cin >> n;
        int suf = 1;
        vector<int> ans;
        while(n)
        {
            int tmp = n%10*suf;
            if(tmp) ans.push_back(tmp);
            suf *= 10;
            n /= 10;
        }
        cout << ans.size() << '\n';
        for(int i = 0; i < ans.size(); i++) cout << ans[i] << " \n"[i==ans.size()-1];
    }
    return 0;
}

标签:10,测试点,Sum,number,round,CF1352A,整型,integer,Round
From: https://www.cnblogs.com/CasseShimada/p/16704003.html

相关文章

  • Codeforces Round #816 (Div. 2) A-D
    CodeforcesRound#816(Div.2)A-D传送门A题意:长为n,m的一个棋盘,左上的旗子要去右下,左下的棋子要去右上,每次移动花费为1,但当一个棋子在另一个棋子的轨迹上时,可以花费......
  • Codeforces Round #819 (Div. 1 + Div. 2) A-D
    CodeforcesRound#819(Div.1+Div.2)A-D传送门过程本场A小磕一下,浪费了一点时间,随后B的迷惑题面浪费大量时间,心态发生了变化,不过最后还是在强猜后蒙过了,C又浪费了......
  • Codeforces Round #819 (Div. 1 + Div. 2) 补题 C
    C.Jatayu'sBalancedBracketSequence(思维题)题意:给你一个平衡括号序列(符合书写规则),其任意子区间[i,j]如果是平衡子序列,就建立一条i,j之间的无权无向边,求最后建成的图......
  • Codeforces Round #819 (Div. 1 + Div. 2)
    \(\texttt{Unrated}\)好像是印度老哥又一次放了F原题,悲。A考虑保留头尾的数,\(3\)种情况的分讨,即保留\(a_1\),保留\(a_n\),或者都保留。MyCode#include<bits/stdc+......
  • Codeforces Round #816 (Div. 2)
    Preface早上7:20起来早自习,结果不知道背什么遂刷了好久知乎……下午只有一个思修课,一边划水一遍写题,堪堪做了ABCD晚上据说有C语言的程序设计?又可以摸鱼了好耶A.Crossm......
  • Educational Codeforces Round 40 (Rated for Div. 2) 补题
    E.WaterTaps题意:每个水龙头有一个流量限制\(a_i\),温度\(t_i\),现在让你控制每个水龙头的出水量\(x_i\),使得最终的水温为\(T\),水温的公式为$\frac{\sum\limits_{i=1}^{......
  • Codeforces Round #819 (Div. 1 + Div. 2) and Grimoire of Code Annual Contest 2022
    这场打的稀烂。。。A.MainakandArray题意:将数组中某段子序列翻转一次,求a[n]-a[1]最大的值。思路:有三种情况:第一种,将最小的数翻转到第一位,然后用原来的a[n]减去反......
  • Python 取整函数汇总- round()、int()、floor()、ceil()的用法
    对每位程序员来说,在编程过程中数据处理是不可避免的,很多时候都需要根据需求把获取到的数据进行处理,取整则是最基本的数据处理。取整的方式则包括向下取整、四舍五入、向......
  • SQL的ROUND
    SELECTROUND(column_name,decimals)--selectCOUNT(gender),round(avg(gpa),1)FROMtable_name参数描述column_name必需。要舍入的字段。decimals必需。规定......
  • Educational Codeforces Round 134 D
    D.MaximumAND可以很轻松通过^和&两个操作看出我们要求的两个序列每一位上的1加起来必须等于n才行多一个少一个都不行然后1加起来等于n0自然加起来也等于n0和1的数......